我正在尝试使用 pyspark 中的立方体函数,而不包含立方体中的所有列。
SQL 相当于我想要实现的目标:
从表中选择 col1, col2, col3, sum(col4) 按 col1、cube(col2、col3) 分组
这按 col1 以及 col2 和 col3 的所有组合进行分组
在 pyspark 中,运行下面的命令时,我收到消息 GroupedData object has no attibute 'cube'
spark.table("table").groupBy(col1).cube(col2,col3).agg(sum(col4))
我可以使用cube,但我需要包含我不想包含的col1
spark.table(“表”).cube(col1,col2,col3).agg(sum(col4))
有两种选择:
spark.sql("""
col1, col2, col3, sum(col4)
from table
group by col1, cube(col2, col3)
""").show()
from pyspark.sql import functions as F
spark.table("data") \
.cube("col1", "col2", "col3") \
.agg(F.sum("col4")) \
.where(F.col("col1").isNotNull()) \
.show()