无法将数据加载为 parquet 文件格式?

Unable to load data into parquet file format?

我正在尝试将日志数据解析为 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 ;

`

阿曼库玛,

要解决此问题,运行 添加以下 jar 后的配置单元查询:

hive> add jar hive-contrib.jar;

要永久添加 jar,请执行以下操作:

1.On Hive 服务器主机,创建一个 /usr/hdp//hive/auxlib 目录。

2.Copy /usr/hdp//hive/lib/hive-contrib-.jar 到 /usr/hdp//hive/auxlib.

3.Restart HS2 服务器。

请进一步查看参考资料。

https://community.hortonworks.com/content/supportkb/150175/errororgapachehadoophivecontribserde2multidelimits.html.

https://community.hortonworks.com/questions/79075/loading-data-to-hive-via-pig-orgapachehadoophiveco.html

如果您遇到任何问题,请告诉我