【发布时间】:2020-05-29 08:13:00
【问题描述】:
我的数据框中有一列具有以下结构。
+--------------------+
| data|
+--------------------+
|{"sbar":{"_id":"5...|
|{"sbar":{"_id":"5...|
|{"sbar":{"_id":"5...|
|{"sbar":{"_id":"5...|
|{"sbar":{"_id":"5...|
+--------------------+
only showing top 5 rows
列内的数据是一个json字符串。我想将该列转换为其他类型(map、struct..)。如何使用 udf 函数执行此操作?我已经创建了一个这样的函数,但无法弄清楚返回类型应该是什么。我尝试了抛出错误的 StructType 和 MapType。这是我的代码。
import json
from pyspark.sql.types import MapType, StructType
udf_getDict = F.udf(lambda x: json.loads(x), StructType)
subset.select(udf_getDict(F.col('data'))).printSchema()
【问题讨论】:
标签: json pyspark user-defined-functions