Apache spark 在Spark中选择不在多维数据集中的列

Apache spark 在Spark中选择不在多维数据集中的列,apache-spark,aggregate,cube,Apache Spark,Aggregate,Cube,我有一个数据框,它有3列x,y和z。 我想得到结果中的所有三列,但我不想在z列上进行立方体 有什么办法我能做到吗 p.S.-(我刚刚给出了3列的示例,但我有一个相当长的列列表,所以组集不是一个选项) 示例- val df=序列((“1”、“x”、“a”)、(“1”、“v”、“b”)、(“3”、“x”、“c”)。toDF(“col1”、“col2”、“col3”) val list=Seq(“col1”、“col2”).map(e=>col(e)) //现在我想选择col3非立方(基本上我不想得到

我有一个数据框,它有3列x,y和z。 我想得到结果中的所有三列,但我不想在z列上进行立方体

有什么办法我能做到吗

p.S.-(我刚刚给出了3列的示例,但我有一个相当长的列列表,所以组集不是一个选项)

示例-

val df=序列((“1”、“x”、“a”)、(“1”、“v”、“b”)、(“3”、“x”、“c”)。toDF(“col1”、“col2”、“col3”)

val list=Seq(“col1”、“col2”).map(e=>col(e))

//现在我想选择col3非立方(基本上我不想得到它的组合) //这家伙根本不会选择col3,因为col3不是我想要实现的立方体的一部分


display(df.select($“col1”、$“col2”、$“col3”).cube(列表:*).agg(sum(“col1”))

多维数据集是GroupBY的一个扩展,您将获得用于分组的各种列组合的聚合结果。 下面是一个使用groupBy可以实现的示例

df.cube($"col1",$"col2").agg(first($"col3").as("col3")).show

请按照Shaido的建议分享您的预期结果。

您能否添加一些示例,说明您希望实现的目标以及您对cube的理解?你试过什么吗?