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

如何將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()函數,並使用手工字符串連接與集團等,但是沒有一個是好工作。

請幫助。

14日回複14

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然而你想:

圖像圖像

sujai_sparks
新的貢獻者三世

@Nathan安東尼,謝謝你,非常感謝!

謝謝@Ryan Chynoweth和@Joseph Kambourakis !你們都是偉大的幫助社區。有很多學習社區!

sujai_sparks
新的貢獻者三世

馬克這個問題我怎麼回答?

sujai_sparks
新的貢獻者三世

最後的sql:

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

和輸出:

2023-02-24 22 _08_34-mytest -磚4噸的感謝大家!

NateAnth
貢獻者三世

很高興為你工作! !

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

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

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

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

Baidu
map