最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spark SQL操作JSON字段的小技巧

 更新時間:2018年04月25日 11:50:07   作者:祝威廉  
這篇文章主要給大家介紹了關于Spark SQL操作JSON字段的小技巧,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spark sql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

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

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

get_json_object

第一個就是get_json_object,具體用法如下:

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

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

from_json

具體用法如下:

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

這個方法可以給json定義一個Schema,這樣在使用時,就可以直接使用a.k這種方式了,會簡化很多。

to_json

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

select to_json(struct(*)) AS value

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

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

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

總結(jié)

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

相關文章

  • 詳解IDEA中便捷內(nèi)存數(shù)據(jù)庫H2的最簡使用方式

    詳解IDEA中便捷內(nèi)存數(shù)據(jù)庫H2的最簡使用方式

    這篇文章主要介紹了詳解IDEA中便捷內(nèi)存數(shù)據(jù)庫H2的最簡使用方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • dbeaver導入導出數(shù)據(jù)庫簡單圖文教程

    dbeaver導入導出數(shù)據(jù)庫簡單圖文教程

    DBeaver是一款適用于開發(fā)人員、數(shù)據(jù)庫管理員和分析師的多平臺、多數(shù)據(jù)庫管理工具,這篇文章主要給大家介紹了關于dbeaver導入導出數(shù)據(jù)庫的相關資料,需要的朋友可以參考下
    2024-01-01
  • Mybatis分頁插件的實例詳解

    Mybatis分頁插件的實例詳解

    這篇文章主要介紹了Mybatis分頁插件的實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • sql join on 用法

    sql join on 用法

    非常不錯使用join on實現(xiàn)數(shù)據(jù)庫字段的連接輸出效果。
    2009-07-07
  • 復雜SQL實現(xiàn)分組分情況分頁查詢代碼實例

    復雜SQL實現(xiàn)分組分情況分頁查詢代碼實例

    最近學習了一下SQL的分頁查詢,總結(jié)了復雜SQL分組分頁查詢的方法,這篇文章主要給大家介紹了關于復雜SQL實現(xiàn)分組分情況分頁查詢的相關資料,需要的朋友可以參考下
    2023-12-12
  • 你應該知道的States字段使用規(guī)范

    你應該知道的States字段使用規(guī)范

    這篇文章主要給大家介紹了一些大家應該知道的States字段使用規(guī)范的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • 圖文詳解HTTP頭中的SQL注入

    圖文詳解HTTP頭中的SQL注入

    HTTP頭字段是超文本傳輸協(xié)議(HTTP)中請求和響應的部分信息,它們定義了HTTP傳輸?shù)牟僮鲄?shù),下面這篇文章主要給大家介紹了關于HTTP頭中SQL注入的相關資料,需要的朋友可以參考下
    2021-12-12
  • 在SQL SERVER中查詢數(shù)據(jù)庫中第幾條至第幾條之間的數(shù)據(jù)SQL語句寫法

    在SQL SERVER中查詢數(shù)據(jù)庫中第幾條至第幾條之間的數(shù)據(jù)SQL語句寫法

    這篇文章主要介紹了在SQL SERVER中查詢數(shù)據(jù)庫中第幾條至第幾條之間的數(shù)據(jù)SQL語句寫法,需要的朋友可以參考下
    2015-11-11
  • Sybase 復制與熱切換數(shù)據(jù)

    Sybase 復制與熱切換數(shù)據(jù)

    SYBASE復制服務器(Sybase Replication Server)用來滿足日益發(fā)展的企業(yè)客戶/服務器計算機環(huán)境的需要。自從復制服務器被廣泛應用以來,已成為企業(yè)范圍內(nèi)客戶/服務器應用模式的基礎。
    2009-06-06
  • SQLSERVER 高級復 制 排錯 技巧

    SQLSERVER 高級復 制 排錯 技巧

    SQLSERVER 高級復 制 排錯 技巧...
    2007-08-08

最新評論

广河县| 邮箱| 军事| 吉水县| 昆山市| 阳原县| 阜康市| 象州县| 大竹县| 泰安市| 阆中市| 宣城市| 商洛市| 永定县| 象州县| 安仁县| 清苑县| 三河市| 娄底市| 福泉市| 修武县| 浪卡子县| 汤原县| 洛阳市| 广东省| 峡江县| 抚顺市| 南城县| 中牟县| 新建县| 温泉县| 泰来县| 阿拉善左旗| 西丰县| 文安县| 安义县| 灵丘县| 深圳市| 扬中市| 湖南省| 饶阳县|