问题描述:数据是json格式存储的,需要创建一张hive表支持json格式
(1)低版本的hive创建json格式的表,需要add jar...,hive2.3.0版本默认支持json格式的表
(2)创建json格式的表需要建表语句加
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE
完整sql如下:
CREATE EXTERNAL TABLE `test_json`(
字段 类型 ...)
PARTITIONED BY ( 分区..)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE
LOCATION '...';
(3)虽然hive2.3.0直接支持建json格式的表,也支持select *,但是select count(1) 操作时候会报错找不到org.apache.hive.hcatalog.data.JsonSerDe
解决办法:
在hive-site.xml中添加如下配置,重启hive后,恢复正常
<property> <name>hive.aux.jars.path</name> <!--根据自己的实际路径修改--> <value>/home/hadoop/apache-hive-2.3.2-bin/hcatalog/share/hcatalog/hive-hcatalog-core-2.3.2.jar</value> </property>