java - Hive ddl 失败并出现 java.lang.ClassNotFoundException - org.apache.hadoop.hive.serde2.SerDe
问题描述
尝试将 XML 数据文件加载到配置单元表中,在创建表时出错。谁能帮助我:)-。下面给出 ddl hql 文件。使用 hive 2.3.7 版本。
出现错误失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。org/apache/hadoop/hive/serde2/SerDe
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.serde2.SerDe
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 44 more
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hive/serde2/SerDe
HQL-Script:
Given bewlow the ddl hql file.Using hive 2.3.7 version.
add jar /home/userx/apache-hive-2.3.7-bin/lib/hivexmlserde-1.0.0.0.jar;
add jar /home/userx/apache-hive-2.3.7-bin/lib/hive-hcatalog-core-2.3.7.jar;
add jar /home/userx/apache-hive-2.3.7-bin/lib/hive-serde-2.3.7.jar;
drop table if exists xmltablenested;
create table if not exists xmltablenested
(
name string,
age string,
contacts array<struct<mobile:string>>
)
row format serde 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
with serdeproperties
(
"column.xpath.name" = "/company/emp/name/text()",
"column.xpath.age" = "/company/emp/age/text()",
"column.xpath.contacts" = "/company/emp/contacts"
)
stored as
inputformat 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
outputformat 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
tblproperties (
"xmlinput.start" = "<company>",
"xmloutput.end" = "</company>" )
;
解决方案
推荐阅读
- random - 如何从一个区间中选择几个随机数?
- python - 如何在 Python 中查询复杂的嵌套 JSON 数据
- python - map() 一个带有 numpy 数组和列表作为参数的函数
- javascript - event.target.setVolume(0); 自己不起作用,为什么?
- python - 清除当前对象或在 python 中创建新对象
- android - 使用 Glide 进行 API 调用的 ImageView 中没有图像
- yaml - traefik.yml 使用环境变量作为地址/端口
- reactjs - 连接 Django 和 React
- python - 检查 asyncio.get_event_loop() 是否已完成?
- r - 有谁知道为什么我的 rmarkdown 标头无法在 pdfout 中成功显示?