hive基于json格式创建hive表
创作不易,转载请注明出处。如有疑问,请加微信 wx15151889890,谢谢。
[本文链接:]https://blog.csdn.net/wx740851326/article/details/83658257
由于前段的数据是json格式的,因此想基于json建表。
导入json解析包
首先需要引入json的hive解析包。
我使用的是cdh5.13.3,在这里下载了hive-hcatalog-core的包
hive-hcatalog-core下载地址
hive里是使用命令添加jar包
add jar hdfs:///user/hive/jars/hive-hcatalog-core-1.1.0-cdh5.13.3.jar;
添加了之后便可根据json的内容建表了
##基于sjon文件建表##
单条json文本的内容
{
"prims": {
"PLCOrderCode": "6ES7 313-5BF03-0AB0",
"PLCName": "SIMP-PLC_23",
"WorkShop": "",
"ProductLine": "",
"DateTime": "10/30/2018 16:00:29:730",
"DeviceName": ""
},
"params": {
"A1_LL_P_Alarm": "ON"
}
}
hive建表语句
create external table if not exists plc_data
(
PRIMS map<string,string> comment "plc基础信息",
PARAMS map<string,string> comment "plc明细信息"
)comment "plc数据汇总表"
partitioned by (partition_day string)
row format serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION
'hdfs:///data/flink/plc_data/';
serde格式注意是 org.apache.hive.hcatalog.data.JsonSerDe
将数据放置到相应的hdfs目录下面:
/data/flink/plc_data/partition_day=20181101
这里注意文件目录名称是partition_day=20181101
这个名称根据你的数据分区而定,使用命令挂在分区目录
alter table plc_data add partition (partition_day=20181101);
查询数据看下结果:
hive> select prims['PLCOrderCode'],params from plc_data;
OK
6ES7 313-5BF03-0AB0 {"A1_LL_P_Alarm":"ON"}
Time taken: 1.177 seconds, Fetched: 1 row(s)
大功告成!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端