以下代码进行聚合并创建一个包含list数据类型的列:
groupBy(
"column_name_1"
).agg(
expr("collect_list(column_name_2) "
"AS column_name_3")
)
所以似乎可以在数据帧中将'list'作为列数据类型。
我想知道我是否可以编写一个返回自定义数据类型的udf,例如python dict?
答案 0 :(得分:0)
该列表是spark的Array数据类型的表示。您可以尝试使用Map数据类型(pyspark.sql.types.MapType)。 创建它的一个例子是:pyspark.sql.functions.create_map,它从多个列创建一个映射 也就是说,如果你想创建一个自定义聚合函数来执行pyspark.sql.functions中尚未提供的任何功能,你需要使用scala。