복붙노트

[HADOOP] 어떻게 R에서 스트리밍 mapreduce 작업에서 파일 이름을 얻을 수 있습니까?

HADOOP

어떻게 R에서 스트리밍 mapreduce 작업에서 파일 이름을 얻을 수 있습니까?

R mapreduce 작업을 스트리밍하고 파일 이름을 가져와야합니다. Hadoop이 시작되기 전에 현재 작업에 대한 환경 변수를 설정하고 Sys.getenv ()를 사용하여 R에서 env 변수에 액세스 할 수 있다는 것을 알고 있습니다.

나는 찾았다 : 스트리밍 하프 프로그램에서 입력 파일 이름 가져 오기

및 Sys.getenv (mapred_job_id) 잘 작동하지만 필요한 것은 아닙니다. 파일 이름이 필요하고 작업 ID 나 이름이 필요하지 않습니다. 나는 또한 발견했다 : 어떻게 EC2에서 mapreduce 작업을 실행할 때 파일명을 얻는가?

그러나 이것은 도움이되지 않습니다. R에서 스트리밍하는 동안 현재 파일 이름을 가져 오는 가장 쉬운 방법은 무엇입니까? 고맙습니다

해결법

  1. ==============================

    1.나는 이것을 시도하지 않았지만, 당신이 제공 한 두번째 링크에서 이것은 map.input.file이라는 환경 변수에서 사용 가능한 것으로 보인다. 그럼,이 작동합니다 :

    나는 이것을 시도하지 않았지만, 당신이 제공 한 두번째 링크에서 이것은 map.input.file이라는 환경 변수에서 사용 가능한 것으로 보인다. 그럼,이 작동합니다 :

    Sys.getenv("map.input.file")
    

    편집하다: 추가 조사를 통해 점을 밑줄로 대체해야한다는 것을 알았으므로이를 수행하는 방법이 있습니다.

    Sys.getenv("map_input_file")
    

    그러나 YARN (Hadoop 2.x)에서는 map.input.file 속성이 더 이상 사용되지 않으므로 대신 새 이름을 사용해야합니다.

    Sys.getenv("mapreduce_map_input_file")
    
  2. from https://stackoverflow.com/questions/20915569/how-can-to-get-the-filename-from-a-streaming-mapreduce-job-in-r by cc-by-sa and MIT license