具有列表数据类型的列:Spark HiveContext

时间:2016-07-14 21:28:28

标签: pyspark spark-dataframe pyspark-sql

以下代码进行聚合并创建一个包含list数据类型的列:

groupBy(
            "column_name_1"
        ).agg(
            expr("collect_list(column_name_2) "
                 "AS column_name_3")
        )

所以似乎可以在数据帧中将'list'作为列数据类型。

我想知道我是否可以编写一个返回自定义数据类型的udf,例如python dict?

1 个答案:

答案 0 :(得分:0)

该列表是spark的Array数据类型的表示。您可以尝试使用Map数据类型(pyspark.sql.types.MapType)。 创建它的一个例子是:pyspark.sql.functions.create_map,它从多个列创建一个映射 也就是说,如果你想创建一个自定义聚合函数来执行pyspark.sql.functions中尚未提供的任何功能,你需要使用scala。