복붙노트

[HADOOP] 하둡 돼지 XPath는 빈 속성 값을 반환

HADOOP

하둡 돼지 XPath는 빈 속성 값을 반환

나는 돼지, 하둡 2.6 0.15 버전을 클라우 데라를 사용하고 있습니다.

나는 XML 파일에서 데이터를 추출하려합니다. 아래는 XML 파일의 일부를 볼 수 있습니다.

<product productID="MICROLITEMX1600LAMP">
  <basicInfo>
                <category lang="NL" id="OT1006">Output Accessoires</category>
  </basicInfo>
</product>

나는 노드 값을 덤프하지만, XPath를 () 함수를 사용하여 속성 값을 수 없습니다. 대신 제품 ID의 빈 튜플을 반환 아래의 코드를 볼 수 있습니다.

    DEFINE XPath org.apache.pig.piggybank.evaluation.xml.XPath();   
    allProducts = LOAD '/pathtofile/sample.xml' USING org.apache.pig.piggybank.storage.XMLLoader('product') AS (data:chararray);
    productsOneByOne = FOREACH allProducts GENERATE XPath(data, 'product/@productID') AS productid:chararray
    dump productsOneByOne;

이 문제를 해결하기 위해 저를 도와주세요.

해결법

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

    1.XML은 돼지까지 XPath를 사용하여 속성을 추출하는 방법에 대한 자세한 내용을 추가?

    XML은 돼지까지 XPath를 사용하여 속성을 추출하는 방법에 대한 자세한 내용을 추가?

    이 4 매개 변수를 무시로 버그 XPath.java에있다.

    XPath.java에서 다음 코드와 준수 문제를 추가하여 해결됩니다. http://svn.apache.org/repos/asf/pig/branches/branch-0.15/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/xml/XPath.java

    if(input.size() > 3){
      ignoreNamespace=input.get(3);
    }
    

    위의 코드 앞에 추가해야

    if (ignoreNamespace) {
                    xpathString = createNameSpaceIgnoreXpathString(xpathString);
     }
    
  2. from https://stackoverflow.com/questions/35887260/hadoop-pig-xpath-returning-empty-attribute-value by cc-by-sa and MIT license