二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

一、目的

在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后,发现HDFS文件中没问题,但是ODS层表中字段的数据却有问题,字段中的JSON数据不全

二、Hive处理JSON数据方式

(一)将Flume采集Kafka的JSON数据以字符串的方式整个写入Hive表中,然后再用get_json_object或json_tuple进行解析

1、ODS层建静态分区外部表,Flume直接写入ODS层表的HDFS路径下

复制代码
create external table  if not exists  ods_evaluation(
   evaluation_json  string
)
comment '评价数据外部表——静态分区'
partitioned by (day string)
stored as SequenceFile
;

2、用get_json_object进行解析

复制代码
select
        get_json_object(evaluation_json,'$.deviceNo')        device_no,
        get_json_object(evaluation_json,'$.createTime')      create_time,
        get_json_object(evaluation_json,'$.cycle')           cycle,
        get_json_object(evaluation_json,'$.laneNum')         lane_num,
        get_json_object(evaluation_json,'$.evaluationList')   evaluation_list
from hurys_dc_ods.ods_evaluation
;

(二)在导入Hive表之前将JSON数据已拆分好,需要使用JsonSerDe

复制代码
create  external  table  if not exists ods_track(
     device_no    string     comment '设备编号',
     create_time  timestamp  comment '创建时间',
     track_data   string     comment '轨迹数据集合(包含多个目标点)'
)
comment '轨迹数据表——静态分区'
partitioned by (day  date)
row format serde  'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
"separatorChar" = ",",
"quoteChar" = "\"",
"escapeChar" = "\\"
)
tblproperties("skip.header.line.count"="1") ; 

注意:使用JsonSerDe时,每行必须是一个完整的JSON,一个JSON不能跨越多行,否则不能使用JsonSerDe

三、ODS层原有建表SQL

复制代码
create external table  if not exists  ods_evaluation(
   evaluation_json  string
)
comment '评价数据外部表——静态分区'
partitioned by (day string)
row format delimited fields terminated by '\x001'
lines terminated by '\n'
stored as SequenceFile
;

四、HDFS文件中的数据

HDFS文件中JSON数据完整,数据没问题

五、报错详情

查看表数据时发现evaluation_json字段的数据不完整

六、解决方法

(一)重新建表,建表语句中删除其中两行

复制代码
--row format delimited fields terminated by '\x001'
--lines terminated by '\n'

(二)新建表SQL

复制代码
create external table  if not exists  ods_evaluation(
   evaluation_json  string
)
comment '评价数据外部表——静态分区'
partitioned by (day string)
stored as SequenceFile
;

七、查询新表中evaluation_json字段的数据

数据解析成功!

又解决了一个问题,宾果!

相关推荐
Lx35212 小时前
Hadoop容错机制深度解析:保障作业稳定运行
大数据·hadoop
IT毕设梦工厂19 小时前
大数据毕业设计选题推荐-基于大数据的客户购物订单数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata
大数据CLUB1 天前
基于spark的澳洲光伏发电站选址预测
大数据·hadoop·分布式·数据分析·spark·数据开发
计算机编程小央姐1 天前
跟上大数据时代步伐:食物营养数据可视化分析系统技术前沿解析
大数据·hadoop·信息可视化·spark·django·课程设计·食物
IT学长编程1 天前
计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
java·大数据·hadoop·毕业设计·课程设计·推荐算法·毕业论文
Lx3522 天前
Hadoop数据一致性保障:处理分布式系统常见问题
大数据·hadoop
IT学长编程2 天前
计算机毕业设计 基于Hadoop豆瓣电影数据可视化分析设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·django·毕业设计·毕业论文·豆瓣电影数据可视化分析
Dobby_052 天前
【Hadoop】Yarn:Hadoop 生态的资源操作系统
大数据·hadoop·分布式·yarn
笨蛋少年派2 天前
安装Hadoop中遇到的一些问题和解决
大数据·hadoop·分布式
梓仁沐白2 天前
hadoop单机伪分布环境配置
大数据·hadoop·分布式