복붙노트

[HADOOP] avro-tools를 사용하여 Concat Avro 파일

HADOOP

avro-tools를 사용하여 Concat Avro 파일

임 하나의 큰 파일로 avro 파일을 병합하려고 문제가 concat 명령은 와일드 카드를 허용하지 않습니다

hadoop jar avro-tools.jar concat /input/part* /output/bigfile.avro

나는 얻다:

나는 ""과 " '을 사용하려했지만 아무런 기회도 얻지 못했습니다.

해결법

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

    1.나는 Avro의 소스 코드 (1.7.7)를 재빨리 검사했다. 그리고 concat은 glob 패턴을 지원하지 않는다 (기본적으로, 그들은 마지막 인수를 제외한 각 인수에서 FileSystem.open ()을 호출한다).

    나는 Avro의 소스 코드 (1.7.7)를 재빨리 검사했다. 그리고 concat은 glob 패턴을 지원하지 않는다 (기본적으로, 그들은 마지막 인수를 제외한 각 인수에서 FileSystem.open ()을 호출한다).

    즉, 모든 파일 이름을 명시 적으로 인수로 제공해야 함을 의미합니다. 귀찮은 일이지만 다음 명령을 사용하여 원하는대로 수행해야합니다.

    IN=$(hadoop fs -ls /input/part* | awk '{printf "%s ", $NF}')
    hadoop jar avro-tools.jar concat ${IN} /output/bigfile.avro
    

    이 명령에 glob 패턴 지원을 추가하는 것도 좋은 방법입니다.

  2. from https://stackoverflow.com/questions/34856838/concat-avro-files-using-avro-tools by cc-by-sa and MIT license