【发布时间】:2020-06-07 17:24:50
【问题描述】:
我有一个带有“学生”列的 pyspark 数据框。
一项数据如下:
{
"Student" : {
"m" : {
"name" : {"s" : "john"},
"score": {"s" : "165"}
}
}
}
我想更改此列的架构,使条目如下所示:
{
"Student" :
{
"m" :
{
"StudentDetails" :
{
"m" :
{
"name" : {"s" : "john"},
"score": {"s" : "165"}
}
}
}
}
}
问题是学生字段在数据框中也可以为空。所以我想保留空值但更改非空值的架构。我在上述过程中使用了 udf。
def Helper_ChangeSchema(row):
#null check
if row is None:
return None
#change schema
data = row.asDict(True)
return {"m":{"StudentDetails":data}}
但 udf 是 spark 的黑匣子。是否有任何方法可以使用内置的 spark 函数或 sql 查询来做同样的事情。
【问题讨论】:
-
与this问题有什么区别?
-
{Student:null} 也可以在数据中。
-
是的,很酷的解决方案:)。但我很难在这里应用它
标签: python dataframe apache-spark pyspark apache-spark-sql