Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
配置单元XML Serde-NULLPOINTEREXCEPTION_Xml_Exception_Hadoop_Hive - Fatal编程技术网

配置单元XML Serde-NULLPOINTEREXCEPTION

配置单元XML Serde-NULLPOINTEREXCEPTION,xml,exception,hadoop,hive,Xml,Exception,Hadoop,Hive,我是Hadoop/Hive新手。我想用XML输入创建一个配置单元脚本。所以,我有获取serde的链接。其中打包了一个jar,我将其用于配置单元脚本 这就是我执行配置单元语句的方式 [biadmin@bng xml]$ hive Logging initialized using configuration in jar:file:/home/biadmin/hive/lib/hive-common-0.13.1.jar!/hive-log4j.properties hive> add

我是Hadoop/Hive新手。我想用XML输入创建一个配置单元脚本。所以,我有获取serde的链接。其中打包了一个jar,我将其用于配置单元脚本

这就是我执行配置单元语句的方式

[biadmin@bng 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> 
[biadmin@bngxml]$hive
使用jar:file:/home/biadmin/hive/lib/hive-common-0.13.1.jar中的配置初始化日志记录/hive-log4j.properties
配置单元>添加jar/home/biadmin/scripts/hivexmlserde-1.0.0.0.jar;
在类路径中添加了/home/biadmin/scripts/hivexmlserde-1.0.0.0.jar
添加的资源:/home/biadmin/scripts/hivexmlserde-1.0.0.0.jar
配置单元>如果不存在,则创建外部表xmltest(id varchar(50)、名称varchar(50)、类型varchar(50)、依赖项varchar(50)、值varchar(50))
>行格式SERDE'com.ibm.spss.hive.serde2.xml.XmlSerDe'
>具有serdeproperty(
>“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()
> )
>存储为
>INPUTFORMAT'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
>OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
>TBLProperty(

>“xmlinput.start”=”在CREATE语句中尝试将这些作为
column.xpath.
属性的值

"column.xpath.id"="Par/recs/rec/id/text()",
"column.xpath.name"="Par/recs/rec/name/text()",
"column.xpath.type"="Par/recs/rec/type/text()",
"column.xpath.dependency"="Par/recs/rec/dependency/text()", 
"column.xpath.values"="Par/recs/rec/values/text()"

我相信这个修改会对您有用。

表定义中是否有输入错误缺少a);在选择之前,我认为位置需要在表属性之前h…缺少“)”是一个复制粘贴错误。对不起,我尝试将“位置”向上移动。但是,它最终给出了一个异常失败:ParseException行6:0在“WITH'near”“/home/biadmin/scripts/xml”“处缺少EOF”此外,当我进入配置单元外壳时会创建xmltest表。但查询它会给我一个异常…”失败:RuntimeException MetaException(消息:java.lang.ClassNotFoundException Class com.ibm.spss.hive.serde2.xml.XmlSerDe未找到)" .. 我把罐子放进蜂箱里了。为什么会出现这种例外情况??任何idea@cbf1304 .. 我解决了这个问题。我忘了在“行格式SERDE'com.ibm.spss.hive.serde2.xml.XmlSerDe”中添加“SERDE”关键字。。。这解决了问题。如果可能的话,请帮我解答修改后的问题。非常感谢。好的地方,工作日志中有什么有用的东西吗?http://:50030/jobtracker.jsp
"column.xpath.id"="Par/recs/rec/id/text()",
"column.xpath.name"="Par/recs/rec/name/text()",
"column.xpath.type"="Par/recs/rec/type/text()",
"column.xpath.dependency"="Par/recs/rec/dependency/text()", 
"column.xpath.values"="Par/recs/rec/values/text()"