PySpark groupBy 和多列聚合函数
PySpark groupBy and aggregation functions with multiple columns
我使用 spark Dataframe 并尝试使用 groupby 创建一个带有聚合的新 table:
我的数据示例:
这是期望的结果:
我试过这个代码data.groupBy("id1").agg(countDistinct("id2").alias("id2"), sum("value").alias("value"))
有人可以帮忙吗?谢谢
尝试使用下面的代码 -
from pyspark.sql.functions import *
df = spark.createDataFrame([('id11', 'id21', 1), ('id11', 'id22', 2), ('id11', 'id23', 3), ('id12', 'id21', 2), ('id12', 'id23', 1), ('id13', 'id23', 2), ('id13', 'id21', 8)], ["id1", "id2","value"])
聚合数据 -
df.groupBy("id1").agg(count("id2"),sum("value")).show()
输出-
+----+----------+----------+
| id1|count(id2)|sum(value)|
+----+----------+----------+
|id11| 3| 6|
|id12| 2| 3|
|id13| 2| 10|
+----+----------+----------+
我使用 spark Dataframe 并尝试使用 groupby 创建一个带有聚合的新 table:
我的数据示例:
这是期望的结果:
我试过这个代码data.groupBy("id1").agg(countDistinct("id2").alias("id2"), sum("value").alias("value"))
有人可以帮忙吗?谢谢
尝试使用下面的代码 -
from pyspark.sql.functions import *
df = spark.createDataFrame([('id11', 'id21', 1), ('id11', 'id22', 2), ('id11', 'id23', 3), ('id12', 'id21', 2), ('id12', 'id23', 1), ('id13', 'id23', 2), ('id13', 'id21', 8)], ["id1", "id2","value"])
聚合数据 -
df.groupBy("id1").agg(count("id2"),sum("value")).show()
输出-
+----+----------+----------+
| id1|count(id2)|sum(value)|
+----+----------+----------+
|id11| 3| 6|
|id12| 2| 3|
|id13| 2| 10|
+----+----------+----------+