无法将数据加载到Parquet文件格式?

3j86kqsm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(442)

我试图在hive中将日志数据解析为parquet文件格式,使用的分隔符是“| |-| |”。样本行为“b8905bfc-dc34-463e-a6ac-879e50c2e630 | |-| | syntrans1 | |-| | citbook”
在执行数据转移之后,我能够得到结果
“b8905bfc-dc34-463e-a6ac-879e50c2e630 syntrans1 citbook”。
将数据转换为Parquet文件格式时出现错误:`

Caused by: java.lang.ClassNotFoundException: Class org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe not found
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2185)
        at org.apache.hadoop.hive.ql.plan.PartitionDesc.getDeserializer(PartitionDesc.java:137)
        at org.apache.hadoop.hive.ql.exec.MapOperator.getConvertedOI(MapOperator.java:297)
        ... 24 more
``` `This is what I have tried` ```
create table log (a String ,b String ,c String)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES (
    "field.delim"="||-||",
    "collection.delim"="-",
    "mapkey.delim"="@"
);
create table log_par(
a String ,
b String ,
c String
) stored as PARQUET ;
insert into  logspar select * from log_par ;

`

tcomlyy6

tcomlyy61#

阿曼库马尔,
要解决此问题,请在添加以下jar后运行配置单元查询:

hive> add jar hive-contrib.jar;

要永久添加jar,请执行以下操作:
1.在配置单元服务器主机上,创建/usr/hdp//hive/auxlib目录。
2.将/usr/hdp//hive/lib/hive contrib-.jar复制到/usr/hdp//hive/auxlib。
3.重启hs2服务器。
请查看更多参考资料。
https://community.hortonworks.com/content/supportkb/150175/errororgapachehadoophivecontribserde2multidelimits.html.
https://community.hortonworks.com/questions/79075/loading-data-to-hive-via-pig-orgapachehadoophiveco.html
如果你遇到任何问题,请告诉我

相关问题