我想在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"))
。
答案 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版本。