【发布时间】:2016-10-27 01:08:12
【问题描述】:
我有一个如下所示的 pySpark 数据框:
+-------------+----------+
| sku| date|
+-------------+----------+
|MLA-603526656|02/09/2016|
|MLA-603526656|01/09/2016|
|MLA-604172009|02/10/2016|
|MLA-605470584|02/09/2016|
|MLA-605502281|02/10/2016|
|MLA-605502281|02/09/2016|
+-------------+----------+
我想按 sku 分组,然后计算最小和最大日期。如果我这样做:
df_testing.groupBy('sku') \
.agg({'date': 'min', 'date':'max'}) \
.limit(10) \
.show()
行为与 Pandas 相同,我只得到 sku 和 max(date) 列。在 Pandas 中,我通常会执行以下操作以获得我想要的结果:
df_testing.groupBy('sku') \
.agg({'day': ['min','max']}) \
.limit(10) \
.show()
但是在 pySpark 上这不起作用,我得到一个 java.util.ArrayList cannot be cast to java.lang.String 错误。谁能指出正确的语法?
谢谢。
【问题讨论】:
标签: apache-spark pyspark spark-dataframe