【问题标题】:PySpark Select and GroupByPySpark Select 和 GroupBy
【发布时间】:2022-08-09 20:00:27
【问题描述】:

我们如何在单个语句中同时使用 groupby 和 select 子句?

例如,在 SQL 中,我可以编写

select col_1,col_2 from table group by col_2;

如何在 Pyspark 中用一条语句写出相同的内容?

每个人都反对这个问题,如果它低于你的水平太多,你可以转到下一页。但对我来说,这是一个查询,我需要一些帮助。你可能认为你很酷,但我需要帮助。

标签: dataframe apache-spark pyspark group-by apache-spark-sql


【解决方案1】:

实际上,您可以根据需要使用纯 SQL。以下是几个可供选择的选项。与 SQL 代码相比,在 PySpark 代码中,您不需要重复 col_2 两次。

from pyspark.sql import functions as F
df1 = spark.createDataFrame([(10, 'a'), (11, 'a'), (33, 'b')], ['col_1', 'col_2'])

df1.createOrReplaceTempView('table')
df2 = spark.sql('select sum(col_1), col_2 from table group by col_2')
# +----------+-----+
# |sum(col_1)|col_2|
# +----------+-----+
# |        21|    a|
# |        33|    b|
# +----------+-----+

df2 = df1.groupBy('col_2').sum('col_1')
# +-----+----------+
# |col_2|sum(col_1)|
# +-----+----------+
# |    a|        21|
# |    b|        33|
# +-----+----------+

df2 = df1.groupBy('col_2').agg(F.sum('col_1').alias('sum'))
# +-----+---+
# |col_2|sum|
# +-----+---+
# |    a| 21|
# |    b| 33|
# +-----+---+

【讨论】:

  • 不,如果我必须写SQL语句那我为什么要问,它是同一回事
猜你喜欢
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 2019-08-11
  • 2019-10-26
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多