国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hive字符串?dāng)?shù)組json類型取某字段再列轉(zhuǎn)行

這篇具有很好參考價(jià)值的文章主要介紹了Hive字符串?dāng)?shù)組json類型取某字段再列轉(zhuǎn)行。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、原始數(shù)據(jù)

acct content
1232313 [{"name":"張三","code":"上海浦東新區(qū)89492jfkdaj\r\n福建的卡"...},{"name":"狂徒","code":"select * from table where aa=1\r\n and a=12"...},{...}]
... ...

二、需求

?上述數(shù)據(jù)表名code_content,把json中code內(nèi)容全都取出來拼接成一行數(shù)據(jù),最終效果:

acct new_content
1232313 上海浦東新區(qū)89492jfkdaj\r\n福建的卡\u0001select * from table where aa=1\r\n and a=12
... ...

三、解析思路

四、實(shí)現(xiàn)方法

1.sql

select acct,concat_ws('\u0001',collect_list(t.code)) code
from 
(
select acct,get_json_object(a_json,'$.code') code
from
(
select acct,
split(regexp_replace(regexp_extract(code,'(^\\[)(.*?)(\\]$)',2),'\\},\\{','\\}|\\{'),'\\|') as t_code
from code_content
where dt=20230823
) a
lateral view explode(t_code) code_content_tab as a_json
) t
group by acct

2.sql解釋:

  • regexp_extract(code,'(^\\[)(.*?)(\\]$)',2):用正則取出數(shù)組里的json
  • regexp_replace:替換},{為}|{,方便切割因?yàn)?號(hào)一般語句里會(huì)比較多
  • split:切割成數(shù)組
  • explode:函數(shù)中的參數(shù)傳入的是arrary數(shù)據(jù)類型的列名,通常,explode函數(shù)會(huì)與lateral view一起結(jié)合使用
  • lateral view:Lateral View配合 split, explode 等UDTF函數(shù)一起使用,它能夠?qū)⒁涣袛?shù)據(jù)拆成多行數(shù)據(jù),并且對(duì)拆分后結(jié)果進(jìn)行聚合,即將多行結(jié)果組合成一個(gè)支持別名的虛擬表。
  • get_json_object(a_json,'$.code'):獲取json字段value
  • concat_ws('\u0001',collect_list(t.code)):“列轉(zhuǎn)行”

參考:

Hive SQL中的 lateral view 與 explode(列轉(zhuǎn)行)以及行轉(zhuǎn)列_sql explode_賣山楂啦prss的博客-CSDN博客

hivesql解析json數(shù)組并拆分成多行_hive sql怎么對(duì)一個(gè)數(shù)組進(jìn)行分行_Time Woods的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-668102.html

到了這里,關(guān)于Hive字符串?dāng)?shù)組json類型取某字段再列轉(zhuǎn)行的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • jquery和php json字符串轉(zhuǎn)數(shù)組對(duì)象 和 數(shù)組對(duì)象轉(zhuǎn)json字符串

    要實(shí)現(xiàn)從對(duì)象轉(zhuǎn)換為 JSON 字符串,使用 JSON.stringify( ) 方法: 要實(shí)現(xiàn)從 JSON 轉(zhuǎn)換為對(duì)象,使用 JSON.parse() 方法: 數(shù)組變字符串 字符串變數(shù)組 json轉(zhuǎn)數(shù)組?? json_decode(? string $json ,? bool $assoc = false ,? int $depth = 512 ,? int $options = 0 ) $json:待解碼的 json string 格式的字符串。這個(gè)函數(shù)

    2024年02月13日
    瀏覽(35)
  • hive 如何處理json字符串

    我們經(jīng)常在線上會(huì)碰見一些json字符串需要在hive中處理,我在工作中碰見的就是常見的兩種,一種是json字符串,一種是json數(shù)組,我們來討論下這兩種情況如何取到你想要的數(shù)據(jù)。 假設(shè)我們有個(gè)json字符串如下: 如果我們需要取到其中的age的字段,那么我們就需要使用hive中自

    2024年02月06日
    瀏覽(30)
  • Hive 解析 JSON 字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方式

    Hive 解析 JSON 字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方式

    在 Hive 中提供了直接解析 JSON 字符串?dāng)?shù)據(jù)的方法 get_json_object(json_txt, path) ,該方法參數(shù)解析如下: json_txt :顧名思義,就是 JSON 字符串; path :指的是匹配 JSON 字符串的格式,通過固定的語法獲取 JSON 字符串中的內(nèi)容。 常用的 path 參數(shù)匹配符號(hào)有四個(gè),分別是: $ :表示獲

    2024年02月05日
    瀏覽(22)
  • java將json字符串轉(zhuǎn)換成json數(shù)組

    java將json字符串轉(zhuǎn)換成json數(shù)組

    有些時(shí)候我們需要將json字符串轉(zhuǎn)換成數(shù)組,并且只取一些屬性值進(jìn)行下一個(gè)方法的賦值,這樣就涉及到了json字符串的轉(zhuǎn)換了, json字符串有兩種形式,一種是以{A,B,C},一種是[{A},{B},{C}]。但是很多時(shí)候是這兩種的結(jié)合。 首先導(dǎo)入jar包 如果是第一種只需要加入以下代碼,注意

    2024年02月11日
    瀏覽(27)
  • hivesql 將json格式字符串轉(zhuǎn)為數(shù)組

    hivesql 將json格式字符串轉(zhuǎn)為數(shù)組

    完整過程SQL在文末 本案例 json 字符串參考格式,請(qǐng)勿使用本數(shù)據(jù) 本案例測(cè)試數(shù)據(jù),復(fù)制保存后請(qǐng)勿格式化 本案例為數(shù)倉(cāng)分層設(shè)計(jì) 創(chuàng)建ods層原始數(shù)據(jù)表 創(chuàng)建dwd層維度數(shù)據(jù)表 ETL轉(zhuǎn)換ods層數(shù)據(jù)插入到dwd層 創(chuàng)建ods層原始數(shù)據(jù)表 加載測(cè)試數(shù)據(jù) 創(chuàng)建dwd層維度數(shù)據(jù)表 ETL轉(zhuǎn)換ods層數(shù)據(jù)插

    2024年02月03日
    瀏覽(23)
  • 如何將JSON字符串?dāng)?shù)組轉(zhuǎn)對(duì)象集合

    1、、、引入jar 包 2、Java對(duì)象轉(zhuǎn)成JSON格式 3、JSON格式字符串轉(zhuǎn)換成Java對(duì)象 3.1、直接將JSON字符串轉(zhuǎn)換成Java對(duì)象 3.2、先將JSON字符串轉(zhuǎn)換成JSON對(duì)象,再轉(zhuǎn)換成Java對(duì)象 3.3、如果JSON字符串是一個(gè)JSON數(shù)組,并且數(shù)組里面存放的同一種類型的對(duì)象,可以將這個(gè)JSON數(shù)組轉(zhuǎn)換成Java的Li

    2024年02月02日
    瀏覽(20)
  • spark SQL 怎么將一個(gè)時(shí)間戳字符串轉(zhuǎn)換成hive支持的時(shí)間日期類型?

    在 Spark SQL 中,可以使用 to_timestamp 函數(shù)將一個(gè)時(shí)間戳字符串轉(zhuǎn)換成 Hive 支持的時(shí)間日期類型。這個(gè)函數(shù)的語法如下: 其中,timestampStr 表示要轉(zhuǎn)換的時(shí)間戳字符串,format 表示時(shí)間戳字符串的格式,格式必須與時(shí)間戳字符串的實(shí)際格式相匹配。如果不指定格式,Spark 會(huì)使用默認(rèn)

    2024年02月11日
    瀏覽(51)
  • 實(shí)體類中嵌套Enum類型并想轉(zhuǎn)換成JSON字符串時(shí)遇到的問題。

    先說明問題的產(chǎn)生,在自己寫著玩的時(shí)候,新建了一個(gè) User 類如下: 不難看出User類中,用到了枚舉類把性別規(guī)定成了兩個(gè)。 下面是SexEnum類: 這里,當(dāng)我想通過工具類將其轉(zhuǎn)換成json字符串并且讓枚舉中的 值能返回對(duì)應(yīng)的文字時(shí),出現(xiàn)了問題。返回的值是枚舉類的 屬性名 而

    2024年02月08日
    瀏覽(22)
  • sql 語句 字段字符串操作

    substring_index() 函數(shù) 字符串截取 參考大神博客 replace() 字符串替換 ROUND() 函數(shù) 保留多少位小數(shù) 參考大神博客 locate() 函數(shù) 判斷某個(gè)字段屬性值是否包含某個(gè)字符串 concat() 函數(shù) 字段屬性值連接 case when then else 參考大神博客

    2024年02月13日
    瀏覽(19)
  • HIVE獲取json字段特定值(單個(gè)json或者json數(shù)組)

    HIVE獲取json字段特定值(單個(gè)json或者json數(shù)組)

    1.獲取單個(gè)json字符串里的某一特定值 函數(shù):get_json_object(單個(gè)json,‘$.要獲取的字段’) 示例: 代碼:SELECT get_json_object(‘{“NAME”:“張三”,“ID”:“1”}’,‘$.NAME’) as name; SELECT get_json_object(‘{“NAME”:“張三”,“ID”:“1”}’,‘$.NAME’); 2. json_tuple 語法:json_tuple(json_string,

    2024年02月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包