一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

这篇具有很好参考价值的文章主要介绍了一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、目标

在Hive的ODS层建外部表,然后加载HDFS中的CSV文件数据

注意:CSV文件中含有未解析的JSON格式的字段数据,并且JSON字段中还有逗号

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据,Hive,hive,hadoop,json

 二、第一次建外部表,直接以','分隔行字段,结果JSON数据只显示一部分

(一)建外部表SQL

create  external  table  if not exists ods_track2(
     device_no    string     comment '设备编号',
     create_time  timestamp  comment '创建时间',
     track_data   string     comment '轨迹数据集合(包含多个目标点)'
)
comment '轨迹数据表'
row format delimited fields terminated by ','
stored as  textfile  location '/rtp/track'
tblproperties("skip.header.line.count"="1") ;

(二)查看表数据

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据,Hive,hive,hadoop,json

 (三)表数据问题

JSON数据的字段track_data只显示一部分数据,因为JSON格式数据里面也含有逗号

三、解决问题:第二次建外部表,不直接以逗号分隔行字段,而是用Hive提供的Serde

(一)建外部表SQL

create  external  table  if not exists ods_track(
     device_no    string     comment '设备编号',
     create_time  timestamp  comment '创建时间',
     track_data   string     comment '轨迹数据集合(包含多个目标点)'
)
comment '轨迹数据表'
row format serde  'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
"separatorChar" = ",",
"quoteChar" = "\"",
"escapeChar" = "\\"
)
stored as  textfile  location '/rtp/track'
tblproperties("skip.header.line.count"="1") ; 

(二)查看表数据

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据,Hive,hive,hadoop,json

(三)验证一条JSON格式字段track_data的数据是否完整???

[{"id":"14","length":5.0,"height":3.0,"posX":63.0,"posY":37.0,"acs":99.0,"angle":83.0,"altitude":99.0,"longitude":40.0,"latitude":33.0,"trust":5.0,"brand":"SU A00001","carType":"4","carColor":10},{"id":"3","length":9.0,"height":1.0,"posX":43.0,"posY":88.0,"acs":52.0,"angle":82.0,"altitude":81.0,"longitude":59.0,"latitude":84.0,"trust":4.0,"brand":"SU A00001","carType":"2","carColor":5},{"id":"13","length":1.0,"height":1.0,"posX":5.0,"posY":33.0,"acs":57.0,"angle":78.0,"altitude":33.0,"longitude":36.0,"latitude":61.0,"trust":5.0,"brand":"SU A00001","carType":"4","carColor":10},{"id":"89","length":3.0,"height":1.0,"posX":80.0,"posY":96.0,"acs":29.0,"angle":90.0,"altitude":91.0,"longitude":43.0,"latitude":40.0,"trust":1.0,"brand":"SU A00001","carType":"4","carColor":2},{"id":"84","length":3.0,"height":1.0,"posX":26.0,"posY":80.0,"acs":21.0,"angle":25.0,"altitude":99.0,"longitude":86.0,"latitude":31.0,"trust":4.0,"brand":"SU A00001","carType":"3","carColor":1},{"id":"97","length":6.0,"height":3.0,"posX":70.0,"posY":75.0,"acs":9.0,"angle":58.0,"altitude":99.0,"longitude":62.0,"latitude":95.0,"trust":1.0,"brand":"SU A00001","carType":"3","carColor":3},{"id":"17","length":9.0,"height":2.0,"posX":99.0,"posY":17.0,"acs":100.0,"angle":79.0,"altitude":5.0,"longitude":61.0,"latitude":99.0,"trust":1.0,"brand":"SU A00001","carType":"3","carColor":10},{"id":"81","length":8.0,"height":1.0,"posX":30.0,"posY":66.0,"acs":92.0,"angle":73.0,"altitude":3.0,"longitude":62.0,"latitude":84.0,"trust":1.0,"brand":"SU A00001","carType":"2","carColor":8}]

验证结果:数据完整

乐于奉献共享,帮助你我他!!!文章来源地址https://www.toymoban.com/news/detail-604794.html

到了这里,关于一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 架构设计内容分享(一百三十六):Spring AI 项目简介

    目录 1、概览 2、Spring AI 的主要概念 2.1、高级的 Prompt 和 AiResponse 3、Spring AI 入门 4、Spring AI 实践 4.1、在 Spring Boot 中注入 AiClient 4.2、使用 PromptTemplate 配置查询 5、Error 处理 6、总结 Spring 通过 Spring AI 项目正式启用了 AI(人工智能)生成提示功能。本文将带你了解如何在 Spri

    2024年02月22日
    浏览(49)
  • C++之C++11 thread线程示例(一百三十八)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2023年04月15日
    浏览(47)
  • C/C++基础讲解(一百三十一)之经典篇(信息合并/平均分数存储)

    很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,每一步都走的很艰辛,课程上,大学老师基本上讲解上机实操得时间特别有

    2024年02月07日
    浏览(44)
  • Linux图形管理框架gdm3、lightdm、sddm、kdm介绍(一百三十七)

    1.Gnome系列图形管理器:gdm、gdm3 Ubuntu默认界面管理器:gdm3 2.KDE系列图形管理器:KDM,SDDM LUbuntu默认界面管理器:sddm 3.Canonical公司系列图形管理器:Lightdm XUbuntu默认界面管理器:lightdm 查看当前使用的显示管理器 

    2024年02月12日
    浏览(36)
  • 一百一十三、DBeaver——从hive同步数据到clickhouse

    目标:把hive的DM层结果数据导出到clickhouse数据库,试了kettle、sqoop等多种方法都报错,尤其是kettle,搞了大半天发现还是不行。结果目前就只能用DBeaver同步数据。 准备工作:hive和clickhouse中都建好表 第一步,右击clickhouse中的表,选择导入数据 第二步,在源类型和格式中,由

    2024年02月13日
    浏览(56)
  • 第二百三十二回 如何通过相机获取图片文件

    我们在上一章回中介绍了\\\"如何混合选择多个图片和视频文件\\\"相关的内容,本章回中将介绍 如何通过相机获取图片文件 .闲话休提,让我们一起Talk Flutter吧。 我们在前面章回中介绍的选择图片或者视频文件的方式都是通过文件窗口进行的,本章回中将介绍如何通过相机获取图

    2024年02月20日
    浏览(56)
  • 一百八十六、大数据离线数仓完整流程——步骤五、在Hive的DWS层建动态分区表并动态加载数据

    经过6个月的奋斗,项目的离线数仓部分终于可以上线了,因此整理一下离线数仓的整个流程,既是大家提供一个案例经验,也是对自己近半年的工作进行一个总结。 1、Hive的DWS层建库建表语句 --如果不存在则创建hurys_dc_dws数据库 create database if not exists hurys_dc_dws; --使用hurys_

    2024年02月07日
    浏览(48)
  • 一起Talk Android吧(第五百三十八回:RxJava中的线程切换)

    各位看官们大家好,上一回中咱们说的例子是\\\"RxJava中的多线程操作\\\",本章回中介绍的例子是\\\"R xJava中的线程切换 \\\"。闲话休提,言归正转,让我们一起Talk Android吧! 我们在上一章回中介绍了如何创建多线程,本章回将介绍如何进行线程切换。线程切换是指在主线程和子线程之

    2023年04月08日
    浏览(83)
  • 二百三十二、Kettle——修改MySQL中历史数据为当前系统日期并增量同步到ClickHouse中

    由于一些雷达死了但是又需要有数据进行展示,于是就把这些雷达的历史数据,修改日期为当前日期后,增量同步到ClickHouse中, 1、获取当前日期,并且修改历史数据的create_time字段的日期部分 2、如果采用增量表输出的话,还需要获取ClickHouse表中的最新时间,这样有2个变量

    2024年04月13日
    浏览(39)
  • json类型转换对象含有泛型

    接受数据的对象1 对象1里有list 泛型 因为此时接受的是Book类的数据,所以我转换的时候指定了转换类型为Book类型 接受的其他类型的数据,可以转换的时候指定这个类型就可以了 实操代码 输出结果 TypeReference是在运行时指定要转换的类型包括泛型 fastjson的版本 从而实现指定泛型

    2024年02月02日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包