取消
顯示的結果
而不是尋找
你的意思是:

如何將Azure磚三角洲的表中記錄一個嵌套的JSON結構?

sujai_sparks
新的貢獻者三世

假設有一個增量表在Azure磚,商店員工詳細信息(不正常)。

2023-02-24 22 _08_34-mytest -磚

我想以JSON格式導出數據並將其保存為一個文件存儲位置。我需要幫助與磚sql查詢組/構造以JSON格式的數據。

這是示例代碼和期望輸出值:

三角洲表模式:

%如果不存在sql創建表staff_details (department_id int評論id的部門,department_name字符串“部門名稱”發表評論,employee_id int評論“雇員id的員工”,first_name字符串評論人員的名字,last_name字符串評論“姓工作人員”)使用三角洲

腳本填充三角洲表:

% sql插入staff_details (department_id、department_name employee_id, first_name、last_name)值(1“Dept-A”, 101年,“大師”,“Datt”), (1,“Dept-A”, 102年,“湯姆”,“巡航”),(2)“Dept-B”, 201年,“安吉麗娜”、“朱莉”)

顯示記錄:

% sql select * from staff_details order by department_id employee_id

期望的輸出:

{“staff_details”: [{“department_id”: 1、“department_name”:“Dept-A”、“staff_members”: [{“employee_id”: 101年,“first_name”:“大師”,“last_name”:“Datt”}, {“employee_id”: 102年,“first_name”:“湯姆”、“last_name”:“巡航”}]},{“department_id”: 2,“department_name”:“Dept-B”、“staff_members”: [{“employee_id”: 201年,“first_name”:“安吉麗娜”、“last_name”:“朱莉”}]}]}

我試著使用to_json()函數,並使用手工字符串連接與集團等,但是沒有一個是好工作。

請幫助。

1接受解決方案

接受的解決方案

NateAnth
貢獻者三世

如果你想做這個在SQL,給你:

% sql select department_id, department_name collect_list (struct (employee_id first_name、last_name))從staff_details group by department_id staff_members, department_name

下麵是如何在Pyspark:做同樣的

從pyspark.sql。功能導入* df = spark.read.table df1 = df (“staff_details”)。groupby (“department_id”、“department_name”)。gg (collect_list (struct(坳(“employee_id”),坳(“first_name”),坳(“last_name”))) .alias (“staff_members”))

都給你相同的dataframe結構寫出JSON然而你想:

圖像圖像

在原帖子查看解決方案

14日回複14

Ryan_Chynoweth
尊敬的貢獻者三世

你為什麼要記錄轉換為JSON嗎?它必須是SQL嗎?

你可以讀表DataFrame api和寫一個JSON文件。請注意,“融合”是隻有這樣它生成一個文件。這將是這樣的:

df = spark.read。表(表)df.coalesce (1) .write.format (json) .save(“/道路/ /文件”)

另外,你能告訴你的例子與to_json()函數?

匿名
不適用

重新分區(1)略優於合並為一個文件。

Ryan_Chynoweth
尊敬的貢獻者三世

良好的電話。由於@Joseph Kambourakis

我試過,但它創造了三角洲的格式,即,json輸出文件包含一行表中的每條記錄。

2023-02-24 22 _08_34-mytest -磚2

和同樣的事情如果我使用to_json如下所示。既然磚中的示例文檔,我無法構建一個適當的查詢:

2023-02-24 22 _08_34-mytest -磚3

最後,內涵需要json輸出的文件,是基於文件與其他係統的集成。

希望澄清!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map