2012-01-25 3 views
5

PIG를 사용하여 읽을 수있는 파일 형식은 무엇입니까?PIG를 사용하여 읽을 수있는 파일 형식

어떻게하면 다른 형식으로 저장할 수 있습니까? 우리가 CSV 파일을 가지고 있고 어떻게 MXL 파일로 저장하고 싶습니까? STORE 명령을 사용할 때마다 디렉토리를 만들고 파일을 part-m-00000으로 저장합니다. 어떻게 파일의 이름을 변경하고 디렉토리를 덮어 쓸 수 있습니까?

답변

6

PIG를 사용하여 읽을 수있는 파일 형식은 무엇입니까? 어떻게 그들을 다른 형식으로 저장할 수 있습니까?

built-in loading and storing methods 있습니다,하지만 그들은 제한됩니다

  • BinStorage - "바이너리"저장
  • PigStorage - 뭔가로 구분되는로드 및 저장 데이터 (예 : 탭 또는 쉼표와 같은)
  • TextLoader - 라인으로 데이터를로드 라인 (즉, 개행 문자로 구분)

piggybank 커뮤니티가 제공하는 사용자 정의 함수의 라이브러리이며 a number of loading and storing methods이 있으며 여기에는 XML 로더가 포함되어 있지만 XML 스토어는 포함되어 있지 않습니다.


우리가 CSV 파일이 N 내가이 작업을 수행 할 수있는 방법 파일 MXL로 저장하고 싶은 말은?

여기 XML을 사용한다고 가정합니다 ... 파일을 감속기 기준으로 분할하기 때문에 XML에 저장하는 것이 다소 어려울 수 있습니다. 루트 태그를 어디에 두는 지 어떻게 알 수 있습니까? 이는 잘 구성된 XML을 생성하기위한 일종의 후 처리 여야합니다. 당신이 할 수있는

한 가지 XML 문자열로 열을 변환 write a UDF하는 것입니다

예를 들어
B = FOREACH A GENERATE customudfs.DataToXML(col1, col2, col3); 

col1, col2, col3 각각 "foo", 37, "lemons" 있습니다 말한다. UDF는 "<item><name>Foo</name><num>37</num><fruit>lemons</fruit></item>" 문자열을 출력 할 수 있습니다.


우리는 STORE 명령을 사용하여이 디렉토리를 만들고 그것이 내가 파일의 이름을 변경하고 디렉토리를 덮어 쓸 수있는 방법을 일부-m-00000으로 파일을 저장 할 때마다?

part-m-00000이 아닌 출력 파일의 이름을 변경할 수 없습니다. 그것이 바로 Hadoop의 작동 방식입니다. 이름을 변경하려면 사실 뒤에 hadoop fs -mv output/part-m-00000 newoutput/myoutputfile과 같은 내용으로 처리해야합니다. 이것은 돼지 스크립트를 실행 한 다음이 명령을 실행하는 bash 스크립트로 수행 할 수 있습니다.

+0

감사합니다. alott :) –

관련 문제