pyspark 1.4如何在聚合函数中获取列表

时间:2017-12-06 22:53:48

标签: python list pyspark apache-spark-1.4

我想在pyspark 1.4中获得聚合函数中列值的列表。 collect_list不可用。有没有人有建议怎么做?

原始栏目:

ID, date, hour, cell
1, 1030, 01, cell1
1, 1030, 01, cell2
2, 1030, 01, cell3
2, 1030, 02, cell4

我想要输出如下groupby (ID, date, hour)

ID, date, hour, cell_list
1, 1030, 01, cell1, cell2
2, 1030, 01, cell3
2, 1030, 02, cell4

但我的pyspark在1.4.0,collect_list不可用。我做不到: df.groupBy("ID","date","hour").agg(collect_list("cell"))

1 个答案:

答案 0 :(得分:0)

Spark 1.4旧版,不支持,速度慢,错误并与当前版本兼容。您应该考虑升级Spark安装

启用Hive支持,将DataFrame注册为临时表,然后使用

sqlContext  = HiveContext(sc)

df = ...  # create table using HiveContext
df.registerTempTable("df")

sqlContext.sql(
  "SELECT id, date, hour, collect_list(cell) GROUP BY id, date, hour FROM df" 
)

you use YARN should should be able to submit any version of Spark code https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.to_pydatetime.html后,您可能需要在PYTHONPATH上放置自定义PySpark版本。