dede网站被黑,wordpress 多说评论,番禺外贸网站建设,国家建筑工程网查询证书一、目的
在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后#xff0c;发现HDFS文件中没问题#xff0c;但是ODS层表中字段的数据却有问题#xff0c;字段中的JSON数据不全
二、Hive处理JSON数据方式
#xff08;一#xff09;将Flume采集Kafka的JSON数据…一、目的
在用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进行解析
selectget_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.count1) ;
注意使用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字段的数据
数据解析成功 又解决了一个问题宾果