hive添加jar

nwlqm0z1  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(471)

我需要将xml存储在hdfs中,并在hdfs文件夹上创建hive表。我一直在尝试使用这个链接中提供的一个
在使用addjar命令从链接下载之后,我已经将serdejar添加到了hive中。
添加jar hivexmlserde-1.0.5.3.jar
我还收到一条信息说“添加了。。。“到类路径”
list jars也证实了这一点。但当我尝试创建同一链接中提到的表时,它失败了,并显示以下消息
失败:semanticexcepton找不到类com.ibm.spss.hive.serde2.xml.xmlinputformat
请帮忙。
注意:我使用hdp2.3
附件是结果的截图。

emeijp43

emeijp431#

我能够在hdp2.3沙盒上创建表。我理解这个问题。addjar和list jar成功并不意味着jar对您可用。
遵循以下步骤:

  1. Login to the terminal
  2. cd to the path where your jar file is
  3. ls -ltr hivexmlserde-1.0.5.3.jar
  4. Launch hive cli and perform following
  5. hive> add jar hivexmlserde-1.0.5.3.jar;
  6. Added [hivexmlserde-1.0.5.3.jar] to class path
  7. Added resources: [hivexmlserde-1.0.5.3.jar]
  8. hive> CREATE TABLE xml_bank(customer_id STRING, income BIGINT, demographics map<string,string>, financial map<string,string>)
  9. > ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
  10. > WITH SERDEPROPERTIES (
  11. > "column.xpath.customer_id"="/record/@customer_id",
  12. > "column.xpath.income"="/record/income/text()",
  13. > "column.xpath.demographics"="/record/demographics/*",
  14. > "column.xpath.financial"="/record/financial/*"
  15. > )
  16. > STORED AS
  17. > INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
  18. > OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
  19. > TBLPROPERTIES (
  20. > "xmlinput.start"="<record customer",
  21. > "xmlinput.end"="</record>"
  22. > );
  23. OK
  24. Time taken: 2.042 seconds
  25. hive> select * from xml_bank;
  26. OK
  27. Time taken: 0.801 seconds
展开查看全部
dced5bon

dced5bon2#

为jar提供正确的权限和所有权,然后运行add命令是有效的。我不知道为什么会这样!!!

相关问题