xml - HDP 沙盒上的 Hive ADD JAR

标签 xml hadoop jar hive

我需要将 XML 存储在 HDFS 中并在该 HDFS 文件夹之上创建配置单元表。我一直在尝试使用此 link 中提供的那个

link 下载后,我已将 serde jar 添加到配置单元中使用添加 jar 命令。

ADD JAR hivexmlserde-1.0.5.3.jar

我还收到消息“已添加到类路径”

list jars 也证实了这一点。但是当我尝试创建相同的 link 中提到的表时, 它失败并显示以下消息

FAILED: SemanticExcepton cannot find class com.ibm.spss.hive.serde2.xml.XmlInputFormat

请帮忙。

注意:我使用的是HDP 2.3

附上结果截图。 enter image description here

最佳答案

我能够在 HDP 2.3 沙箱上创建表。我明白这个问题。添加 jar 和列出 jar 成功并不意味着 jar 可供您使用。

请按照以下步骤操作:

Login to the terminal
cd to the path where your jar file is
ls -ltr hivexmlserde-1.0.5.3.jar
Launch hive cli and perform following
hive> add jar hivexmlserde-1.0.5.3.jar;
Added [hivexmlserde-1.0.5.3.jar] to class path
Added resources: [hivexmlserde-1.0.5.3.jar]
hive> CREATE TABLE xml_bank(customer_id STRING, income BIGINT, demographics map<string,string>, financial map<string,string>)
    > ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
    > WITH SERDEPROPERTIES (
    > "column.xpath.customer_id"="/record/@customer_id",
    > "column.xpath.income"="/record/income/text()",
    > "column.xpath.demographics"="/record/demographics/*",
    > "column.xpath.financial"="/record/financial/*"
    > )
    > STORED AS
    > INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
    > OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
    > TBLPROPERTIES (
    > "xmlinput.start"="<record customer",
    > "xmlinput.end"="</record>"
    > );
OK
Time taken: 2.042 seconds
hive> select * from xml_bank;
OK
Time taken: 0.801 seconds

关于xml - HDP 沙盒上的 Hive ADD JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34406012/

相关文章:

hadoop - 从分区表复制 Hive

hadoop - 为什么在Hadoop中reduce_input_records少于Combine_output_records?

java - fatal error :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException

java - 如何使用 DOM 解析器在此 XML 文件中添加元素?

javascript - document.location 不生成文件

java - TwoDArrayWritable 中的行列值

java - 如何将数据放入XML的ListView中?

java - 使用反射从 Jar 文件中获取所有类

android - res/raw文件夹下的jar文件

java - 打包时如何使maven "add directory entries"?