3
Hadoop/Hive를 처음 사용했습니다. 나는 XML 입력으로 하이브 스크립트를 만들고 싶다. 그래서 serde를 얻으려면 this 링크가 있습니다. 패키지에는 항아리가 들어 있으며 Hive 스크립트에 사용됩니다.Hive XML Serde - NULLPOINTEREXCEPTION
이 내가 하이브 문을 실행하고있는 방법입니다 ..
[[email protected] xml]$ hive
Logging initialized using configuration in jar:file:/home/biadmin/hive/lib/hive-common-0.13.1.jar!/hive-log4j.properties
hive> add jar /home/biadmin/scripts/hivexmlserde-1.0.0.0.jar;
Added /home/biadmin/scripts/hivexmlserde-1.0.0.0.jar to class path
Added resource: /home/biadmin/scripts/hivexmlserde-1.0.0.0.jar
hive> create external table if not exists xmltest (id varchar(50), name varchar(50), type varchar(50), dependency varchar(50), values varchar(50))
> ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
> WITH SERDEPROPERTIES (
> "column.xpath.id"="/recs/rec/id/text()",
> "column.xpath.name"="/recs/rec/name/text()",
> "column.xpath.type"="/recs/rec/type/text()",
> "column.xpath.dependency"="/recs/rec/dependency/text()",
> "column.xpath.values"="/recs/rec/values/text()"
>)
> STORED AS
> INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
> OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
> TBLPROPERTIES (
> "xmlinput.start"="<Par as",
> "xmlinput.end"="</Par>"
>);
OK
Time taken: 0.126 seconds
hive> load data local inpath '/home/biadmin/scripts/xml/playcontent.xml' into table xmltest;
Copying data from file:/home/biadmin/scripts/xml/playcontent.xml
Copying file: file:/home/biadmin/scripts/xml/playcontent.xml
Loading data to table default.xmltest
Table default.xmltest stats: [numFiles=3, numRows=0, totalSize=1842, rawDataSize=0]
OK
Time taken: 0.807 seconds
hive> select * from xmltest;
OK
Failed with exception java.io.IOException:java.lang.NullPointerException
Time taken: 0.305 seconds
hive>
I는 다음과 사용하려고 오전 XML ...
는<Par as="val">
<recs>
<rec>
<id>servicedescription</id>
<name>Description</name>
<type>textbox</type>
<dependency>1</dependency>
<values>1</values>
</rec>
<rec>
<id>contentlist</id>
<name>Content File/s</name>
<type>selectmul</type>
<dependency>1</dependency>
<values>1</values>
</rec>
<rec>
<id>seek</id>
<name>Seek</name>
<type>checkbox</type>
<dependency>1</dependency>
<values>1</values>
</rec>
</recs>
</Par>
는 사람이 어디 오전 말해 주시겠습니까 내가 잘못 가고있어? 어떤 도움을 주시면 감사하겠습니다.
테이블 정의에 오타가 있습니까? a); 선택하기 전에 위치가 테이블 속성 전에 필요하다고 생각합니다 – shainnif
아 ... 누락 된 ")"은 복사 붙여 넣기 실수였습니다. 죄송합니다. 나는 "위치"를 움직이려고 노력했다. 하지만, 예외가 발생했습니다 ... "실패 : ParseException 라인 6 : 0 'WITH'near/'/ home/biadmin/scripts/xml' '" " – StackAddict
그 외에도 xmltest 테이블은 나는 하이브 껍질에 들어간다. 하지만 질의를하면 예외가 발생합니다 ... "실패 : RuntimeException MetaException (message : java.lang.ClassNotFoundException 클래스 com.ibm.spss.hive.serde2.xml.XmlSerDe not found)".. 하이브에 jar 파일을 추가했습니다. . 이 예외가 오는 이유는 무엇입니까 ?? 모든 아이디어 – StackAddict