婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Spark SQL操作JSON字段的小技巧

Spark SQL操作JSON字段的小技巧

熱門標(biāo)簽:河北便宜電銷機(jī)器人軟件 南昌呼叫中心外呼系統(tǒng)哪家好 小程序智能電話機(jī)器人 湖南保險(xiǎn)智能外呼系統(tǒng)產(chǎn)品介紹 怎么申請(qǐng)400熱線電話 怎么去開發(fā)一個(gè)電銷機(jī)器人 ai電話電話機(jī)器人 泗洪正規(guī)電話機(jī)器人找哪家 簡(jiǎn)單的智能語音電銷機(jī)器人

前言

介紹Spark SQL的JSON支持,這是我們?cè)贒atabricks中開發(fā)的一個(gè)功能,可以在Spark中更容易查詢和創(chuàng)建JSON數(shù)據(jù)。隨著網(wǎng)絡(luò)和移動(dòng)應(yīng)用程序的普及,JSON已經(jīng)成為Web服務(wù)API以及長期存儲(chǔ)的常用的交換格式。使用現(xiàn)有的工具,用戶通常會(huì)使用復(fù)雜的管道來在分析系統(tǒng)中讀取和寫入JSON數(shù)據(jù)集。在Apache Spark 1.1中發(fā)布Spark SQL的JSON支持,在Apache Spark 1.2中增強(qiáng),極大地簡(jiǎn)化了使用JSON數(shù)據(jù)的端到端體驗(yàn)。

很多時(shí)候,比如用structure streaming消費(fèi)kafka數(shù)據(jù),默認(rèn)可能是得到key,value字段,key是偏移量,value是一個(gè)byte數(shù)組。很可能value其實(shí)是一個(gè)Json字符串。這個(gè)時(shí)候我們?cè)撊绾斡肧QL操作這個(gè)json里的東西呢?另外,如果我處理完的數(shù)據(jù),我想寫入到kafka,但是我想把整條記錄作為json格式寫入到Kafka,又該怎么寫這個(gè)SQL呢?

get_json_object

第一個(gè)就是get_json_object,具體用法如下:

select get_json_object('{"k": "foo", "v": 1.0}','$.k') as k

需要給定get_json_object 一個(gè)json字段名(或者字符串),然后通過類似jsonPath的方式去拿具體的值。
這個(gè)方法其實(shí)有點(diǎn)麻煩,如果要提取里面的是個(gè)字段,我就要寫是個(gè)類似的東西,很復(fù)雜。

from_json

具體用法如下:

select a.k from (
select from_json('{"k": "foo", "v": 1.0}','k STRING, v STRING',map("","")) as a
)

這個(gè)方法可以給json定義一個(gè)Schema,這樣在使用時(shí),就可以直接使用a.k這種方式了,會(huì)簡(jiǎn)化很多。

to_json

該方法可以把對(duì)應(yīng)字段轉(zhuǎn)化為json字符串,比如:

select to_json(struct(*)) AS value

可以把所有字段轉(zhuǎn)化為json字符串,然后表示成value字段,接著你就可以把value字段寫入Kafka了。是不是很簡(jiǎn)單。

處理具有大量字段的JSON數(shù)據(jù)集

JSON數(shù)據(jù)通常是半結(jié)構(gòu)化、非固定結(jié)構(gòu)的。將來,我們將擴(kuò)展Spark SQL對(duì)JSON支持,以處理數(shù)據(jù)集中的每個(gè)對(duì)象可能具有相當(dāng)不同的結(jié)構(gòu)的情況。例如,考慮使用JSON字段來保存表示HTTP標(biāo)頭的鍵/值對(duì)的數(shù)據(jù)集。每個(gè)記錄可能會(huì)引入新的標(biāo)題類型,并為每個(gè)記錄使用一個(gè)不同的列將產(chǎn)生一個(gè)非常寬的模式。我們計(jì)劃支持自動(dòng)檢測(cè)這種情況,而是使用map類型。因此,每行可以包含Map,使得能夠查詢其鍵/值對(duì)。這樣,Spark SQL將處理具有更少結(jié)構(gòu)的JSON數(shù)據(jù)集,推動(dòng)了基于SQL的系統(tǒng)可以處理的那種查詢的邊界。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • JS利用map整合雙數(shù)組的小技巧分享
  • JavaScript的一些小技巧分享
  • 11個(gè)Javascript小技巧幫你提升代碼質(zhì)量(小結(jié))
  • 9個(gè)JavaScript日常開發(fā)小技巧
  • JavaScript編碼小技巧分享
  • JavaScript前端開發(fā)時(shí)數(shù)值運(yùn)算的小技巧
  • 處理JavaScript值為undefined的7個(gè)小技巧
  • JS 邏輯判斷不要只知道用 if-else 和 switch條件判斷(小技巧)
  • javascript json對(duì)象小技巧之鍵名作為變量用法分析
  • js 對(duì)象使用的小技巧實(shí)例分析
  • JavaScript中的一些實(shí)用小技巧總結(jié)
  • JavaScript實(shí)用代碼小技巧
  • JS 中可以提升幸福度的小技巧(可以識(shí)別更多另類寫法)
  • 讓你5分鐘掌握9個(gè)JavaScript小技巧
  • JavaScript小技巧帶你提升你的代碼技能

標(biāo)簽:淮安 瀘州 景德鎮(zhèn) 荊門 江蘇 威海 柳州 那曲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Spark SQL操作JSON字段的小技巧》,本文關(guān)鍵詞  Spark,SQL,操作,JSON,字段,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Spark SQL操作JSON字段的小技巧》相關(guān)的同類信息!
  • 本頁收集關(guān)于Spark SQL操作JSON字段的小技巧的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 迭部县| 江山市| 当涂县| 乌拉特后旗| 南通市| 醴陵市| 周至县| 阜新市| 望都县| 正阳县| 天门市| 田东县| 静海县| 哈密市| 普宁市| 图们市| 石嘴山市| 泰州市| 襄樊市| 新竹市| 托克托县| 陆良县| 谢通门县| 合阳县| 綦江县| 平原县| 日土县| 叙永县| 沿河| 德格县| 永定县| 策勒县| 电白县| 秦安县| 凌海市| 嘉荫县| 交口县| 阳新县| 深州市| 灵台县| 苍溪县|