2013-09-30 2 views
0

알 수없는 하위 노드 수를 가진 XML 데이터가 있다고 가정합니다. 하위 노드의 수를 매개 변수로 프로그램에 입력하고 처리 할 수있는 방법이 있습니까? 현재 코드는 많은 간단한 요소 (얼마나 많은 $ 태그 #) 대상 데이터가 어떻게 미리 알 수 없습니다 그러나이입력 번호를 기준으로 다른 수의 열을 생성합니다.

SourceXML = LOAD '$input' using org.apache.pig.piggybank.storage.XMLLoader('$TopNode') as test:chararray; 

test2 = LIMIT SourceXML 3; 

test3 = FOREACH test2 GENERATE REGEX_EXTRACT(test,'<$tag1>(.*)</$tag1>',1), 
    REGEX_EXTRACT(test,'<$tag2>(.*)</$tag2>',1); 

dump test3; 

같은 것입니다. 나는 이런 식으로 뭔가 보이는 매개 변수를 포함하는 .txt 파일 사용 바라고 :

입력 =/inputpath/lowerlevelsofpath

numberSimpleElements = 3

이 tag1 = tag1name

이 tag2 = tag2name

TAG3 = tag3name

,

입력 파일의 각 태그에서 regex_extract가 수행되는 경우

어떻게 수행 할 것인지에 대한 아이디어가 있습니까? 각 행은 현재 값을 가지도록

+0

동적으로 돼지에서 생성 한 코드를 파이썬 스크립트를 작성하려고 시도 결국 간의 조인 마십시오 각 행

  • 위해 (태그 값)를 생성합니다. 이 향상된 유연성으로 인해 필자는 필자에게 필요한 것을주지 못했습니다. 따라서 Java MapReduce 코드를 대신 작성했습니다. –

  • 답변

    0

    당신은

    1. 분할 일부 정규식에 의해 텍스트 다음을 수행 할 수있다.
    2. 는 (태그 값) 및 (태그 목록)
    관련 문제