二百一十、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進行解析

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.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字段的數據

數據解析成功!

又解決了一個問題,賓果!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212371.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212371.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212371.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【華為OD題庫-075】拼接URL-Java

題目 題目描述: 給定一個url前綴和url后綴,通過,分割。需要將其連接為一個完整的url。 如果前綴結尾和后綴開頭都沒有/,需要自動補上/連接符 如果前綴結尾和后綴開頭都為/,需要自動去重 約束:不用考慮前后綴URL不合法情況 輸入描述: url前綴(一個長度小于…

49.Go避免大量并發訪問DB、避免緩存擊穿、緩存穿透、緩存雪崩以及使用延遲雙刪保證數據一致性

文章目錄 一、在高并發下,如何避免大量請求直接訪問數據庫?二、避免緩存擊穿二、避免緩存穿透三、避免緩存雪崩四、延遲雙刪保證數據一致性五、在使用 Go 的 time.AfterFunc 函數時,如果刪除緩存操作失敗怎么辦? MySQL和 Redis是…

vue自定義指令實現按鈕只允許點擊一次

vue自定義指令實現按鈕只允許點擊一次 vue自定義指令實現按鈕只允許點擊一次 這個例子中創建了一個名為 click-once 的自定義指令,通過 bind 鉤子函數給元素綁定了一個點擊事件,并且利用一個變量 clicked 控制了按鈕只能點擊一次的行為。在點擊后會執行傳…

【ITK庫學習】使用itk庫進行圖像濾波ImageFilter:Voting濾波器

目錄 1、itkVotingBinaryImageFilter2、itkVotingBinaryHoleFillingImageFilter 洞穴充填濾波器3、itkVotingBinaryIterativeHoleFillingImageFilter4、itkLabelVotingImageFilter 1、itkVotingBinaryImageFilter 該類是一個基類,用于根據前景和背景像素的鄰域投票…

【數據結構實踐課設】新生報道注冊管理信息系統

目錄 1.主要框架 2.寫入文件 3.讀取文件 4.注冊學生信息 5.增加學生信息 6.刪除學生信息 7.按姓名查詢 8.按班級查詢 9.按專業查詢 10.打印學生信息 11.完整代碼 🌈嗨!我是Filotimo__🌈。很高興與大家相識,希望我的博客能對你有所…

git commit語義規范

合理的應當如 [header]fix(core): remove ....(#33949) These .... RP Close #33949(可選) Header可選 代碼類 新增功能(feat) 修復缺陷(fix) 改進性能(perf) 格式化代碼(style) 優化代碼(refactor) 非代碼類 更新測試代碼(test) 部署相關變更(ci) 文檔類變更(do…

【Linux】第二十七站:內存管理與文件頁緩沖區

文章目錄 一、物理內存和磁盤交換數據的最小單位二、操作系統如何管理內存三、文件的頁緩沖區四、基數樹or基數(字典樹)五、總結 一、物理內存和磁盤交換數據的最小單位 我們知道系統當中除了進程管理、文件管理以外,還有內存管理 內存的本質…

思科最新版Cisco Packet Tracer 8.2.1安裝

思科最新版Cisco Packet Tracer 8.2.1安裝 一. 注冊并登錄CISCO賬號二. 下載 Cisco Packet Tracer 8.2.1三. 安裝四. 漢化五. cisco packet tracer教學文檔六. 正常使用圖 前言 這是我在這個網站整理的筆記,有錯誤的地方請指出,關注我,接下來還會持續更新…

[香橙派]orange pi zero 3 燒錄Ubuntu系統鏡像——無需HDMI數據線安裝

一、前言 本文我們將介紹如何使用orange pi zero 3 安裝Ubuntu系統,本文相關步驟均參考自開發手冊。 二、實施準備 根據開發手冊中所提到的,我們應該擁有如下配件: 1.orange pi zero 3 開發板 2.TF 卡——最小 8GB 容量的 class10 級或以上的高速閃迪卡。…

鴻蒙OS應用開發之語句

在程序開發中,已經有上面的運算符和數據類型了,可以滿足了大部的需求,但是這些程序還是比較簡單的計算和邏輯運算,如果需要復雜的計算和邏輯處理,就需要采用復雜邏輯程序塊來處理了,也就是復雜條件語句才能…

nn.Sequential|nn.ModuleDict|nn.ModuleList 詳解

文章目錄 1、簡介2、三者之間的區別3、如何讓nn.ModuleList 和nn.ModuleDict實現推理3.1 方案1: 實現forward函數3.2 方案2: 將nn.ModuleList 和nn.ModuleDict轉換為nn.Sequential4、nn.ModuleDict、nn.ModuleList 的區別5、nn.ModuleList 、 nn.ModuleDict 與 Python list、…

模型 心流

本系列文章 主要是 分享模型,涉及各個領域,重在提升認知。完全投入其中。 1 心流的應用 1.1 優秀運動員的心流體驗 邁克爾喬丹(Michael Jordan):籃球之神喬丹在比賽中經常進入心流狀態,他曾表示&#xff…

DIY手工藝作坊網站建設的作用如何

我國文化悠久流長,很多手工藝品制作技術放在如今依然有很高的需求度,加之現代新增的技藝,樣式多且藝術性強,比如常見的陶器手工制作技術,當然還有更多。 而對相關作坊來說,除了藝術傳承外,還需…

接觸剛性環境任務下的機器人力控(阻抗)性能測試

內涵 接觸剛性環境任務下的機器人力控(阻抗)性能測試旨在評估機器人在與剛性物體交互時的性能表現。這種測試通過調整機器人的控制參數,如期望剛度和期望阻尼等,并分析記錄的數據,旨在確保機器人能夠在執行任務時保持…

短劇分銷小程序/APP開發:開啟短劇收益時代

今年,短劇火爆出圈,市場規模將達至200億元至300億元。國內全全平臺付費短劇日充值金額為6000萬元,短劇作為一種“快餐式”文化迅速爆火。 短劇契合了觀眾娛樂時間碎片化的發展趨勢,相比于傳統的電視劇,短劇節奏快、劇…

Nacos源碼解讀10——配置中心的客戶端怎么處理服務端推送的配置信息變更

自動裝配 SpringBoot 自動裝配機制 加載 WEB/INF spring.factories org.springframework.cloud.bootstrap.BootstrapConfiguration\ com.alibaba.cloud.nacos.NacosConfigBootstrapConfigurationjava Configuration(proxyBeanMethods false) ConditionalOnProperty(name &q…

MongoDB的連接數據庫,創建、刪除數據庫,創建、刪除集合命令

本文主要介紹MongoDB的連接數據庫,創建、刪除數據庫,創建、刪除集合命令。 目錄 MongoDB連接數據庫連接到本地 MongoDB 實例連接到遠程 MongoDB 實例 MongoDB創建和刪除數據庫MongoDB創建和刪除集合創建集合刪除集合 MongoDB連接數據庫 連接 MongoDB 數…

P1317 低洼地題解

題目 一組數,分別表示地平線的高度變化。高度值為整數,相鄰高度用直線連接。找出并統計有多少個可能積水的低洼地? 如圖:地高變化為 [0,1,0,2,1,2,0,0,2,0]。 輸入輸出格式 輸入格式 兩行,第一行n, 表示有n個數。第…

Spark DataFrame和Dataset使用例子

文章目錄 1、基本操作1.1、創建SparkSession1.2、創建DataFrames1.3、創建Dataset操作1.4、運行sql查詢1.5、創建全局臨時視圖1.6、創建Datasets1.7、與rdd進行互操作1.7.1、使用反射推斷模式1.7.2、以編程方式指定模式 2、完整的測試例子 1、基本操作 1.1、創建SparkSession …

openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup

文章目錄 openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup151.1 背景信息151.2 前提條件151.3 語法151.4 示例151.5 從備份文件恢復數據 openGauss學習筆記-151 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_basebackup 151.1 …