pysparkDataframe聚合的多个标准

k10s72fa  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(304)

我有一个PyparkDataframe,看起来像这样:

+-------------+----------+
|          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 错误。谁能给我指出正确的语法吗?
谢谢。

wbrvyc0a

wbrvyc0a1#

不能使用dict。请使用:

>>> from pyspark.sql import functions as F
>>>
>>> df_testing.groupBy('sku').agg(F.min('date'), F.max('date'))

相关问题