分解包含 JSON 的 Spark Dataframe 列
Explode Spark Dataframe column containing JSON
我在包含 JSON 对象的数据框中有一列。对于我的数据框中的每一行,我想提取 JSON,解析它并提取某些字段。提取后,我想将字段作为新的列元素附加到行中。
我查看了 DataFrame 上可用的 explode()
方法以及 foreach()
、flatMap()
和 map()
,但无法辨别哪个是更适合这种类型的处理。
地图可能就是您所需要的。使用它,您可以解析 json、select 所需的字段,然后 return 包含这些附加列的新行。
一般来说,map 用于 1:1 的用户定义函数(例如,每个输入行对应 1 个输出行)。 Flatmap 用于 1:n 的用户定义函数(其中每一行可以 return 任意数量的行)
我在包含 JSON 对象的数据框中有一列。对于我的数据框中的每一行,我想提取 JSON,解析它并提取某些字段。提取后,我想将字段作为新的列元素附加到行中。
我查看了 DataFrame 上可用的 explode()
方法以及 foreach()
、flatMap()
和 map()
,但无法辨别哪个是更适合这种类型的处理。
地图可能就是您所需要的。使用它,您可以解析 json、select 所需的字段,然后 return 包含这些附加列的新行。
一般来说,map 用于 1:1 的用户定义函数(例如,每个输入行对应 1 个输出行)。 Flatmap 用于 1:n 的用户定义函数(其中每一行可以 return 任意数量的行)