嵌套夷为平地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例子执行这些步骤。

这篇文章有用吗?