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

标签 hadoop hive etl hiveql parquet

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

这是我试过的

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.在 Hive Server 主机上,创建/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

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

关于hadoop - 无法将数据加载为 parquet 文件格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679163/

相关文章:

hadoop - YARN 中的分布式缓存功能

hadoop - 如何在不使用 map reduce 的情况下使用 lzo 压缩写入 hadoop hdfs

java - 使用 java 使用语句类的单个 execute() 方法执行多个配置单元查询

machine-learning - 是否可以在 Google Dataprep 中拆分数据集?如果是这样,怎么办?

hadoop - 通过 hive 将数据插入 hbase 时,reducer 卡在 99%

hadoop - Hive访问问题-没有写访问权限就无法访问Hive CLI

java - jdbc 到配置单元的连接被拒绝

hadoop - sqoop到teradata-如何从hadoop对teradata运行300行查询

database - 我应该跟踪关系/事务数据库中缓慢变化的维度吗?

sql-server - 如何使用 SSIS 从 Excel 文件获取信息