假設有一個增量表在Azure磚,商店員工詳細信息(不正常)。
我想以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()函數,並使用手工字符串連接與集團等,但是沒有一個是好工作。
請幫助。
如果你想做這個在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然而你想:
@Nathan安東尼,謝謝你,非常感謝!
謝謝@Ryan Chynoweth和@Joseph Kambourakis !你們都是偉大的幫助社區。有很多學習社區!
馬克這個問題我怎麼回答?