首先建立基础表的时候:
对于数仓中:
ods层========》
ods层:
drop table if exists ods_startup_log;
create external table ods_startup_log (
`mid` string COMMENT '设备唯一标识',
`uid` string COMMENT '用户标识',
`os` string COMMENT '操作系统',
…
…等等。。。。
) COMMENT ‘启动日志’
PARTITIONED BY ( dt
string)
row format serde ‘org.openx.data.jsonserde.JsonSerDe’
location ‘/warehouse/kettle_dw/ods/ods_startup_log/’
;
设置支持json解析:----》
建表的时候加入:
row format serde 'org.openx.data.jsonserde.JsonSerDe’
同时:
把对应的json-serde-1.3.8-jar-with-dependencies.jar包拷贝到hive/lib目录下和 spark/jars/目录下
在建表语句中使用
row format serde ‘org.openx.data.jsonserde.JsonSerDe’
在处理聚合运算的时候,仍出现错误:
报错信息如下:
**add jar /root/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar;**
Added [/root/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar] to class path
Added resources: [/root/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar]
hive (kettle_dw)> set hive.exec.dynamic.partition.mode=nonstrict;
hive (kettle_dw)>
> insert overwrite table dwd_startup_log partition(dt)
> select
> *
> from ods_startup_log
> where dt='2019-09-24' and mid is not null;
例子说话:
如果在加入hive的lib包后,仍出现问题,在执行数据处理时,加入此命令即可解决:
add jar /root/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar
jar包路径:=======》
/root/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar
最后成功执行后结果为:
perfect!