嵌套夷為平地DataFrame轉換為JSON

如何將一個扁平的DataFrame嵌套JSON使用嵌套類。

寫的亞當Pavlacka

去年發表在:2022年5月20日

本文解釋了如何將一個扁平的DataFrame嵌套結構,通過嵌套類在另一個案件類。

您可以使用這種技術來構建一個JSON文件,然後可以發送到外部API。

定義嵌套模式

我們首先DataFrame夷為平地。

例子DataFrame夷為平地。

使用這個例子DataFrame,我們使用case類定義一個自定義的嵌套模式。

% scala類empId (id:字符串)案件類depId (dep_id:字符串)案例類細節(id: empId,名字:字符串,位置:字符串,depId: depId)類代碼(manager_id:字符串)案件類報告(報告:數組(代碼))案例類hireDate (hire_date:字符串)案例類emp_record (emp_details:細節,incrementDate:字符串,委員會:字符串,國家:字符串,hireDate: hireDate, reports_to:報告)

您可以看到case類嵌套在另一個不同的數據類型。

夷為平地DataFrame轉換為一個嵌套結構

使用DF.map將每一行對象傳遞給相應的case類。

% scala spark.implicits進口。_ val nestedDF = DF。地圖(r = > {val empID_1 = empId (r.getString (0)) val depId_1 = depId (r.getString (7)) val details_1 =細節(empID_1, r.getString (1) r.getString (2), depId_1) val code_1 =代碼(r.getString (3) val reporting_1 =報告(數組(code_1)) val hireDate_1 = hireDate (r.getString (4) emp_record (details_1, r.getString (8), r.getString (6), r.getString (9), hireDate_1, reporting_1)})

這將創建一個嵌套DataFrame。

嵌套DataFrame示例。

寫出嵌套DataFrame JSON文件

使用重新分配().write.option函數嵌套DataFrame寫入一個JSON文件。

% scala nestedDF.repartition (1) .write.option(“多行”,“真正的”). json (“dbfs: / tmp /測試/ json1 /”)

例如筆記本電腦

檢查筆記本DataFrame嵌套JSON例子執行這些步驟。

這篇文章有用嗎?