首页 文章

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

提问于
浏览
-1

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

有没有办法可以做到?

附: - (我刚刚给出了3列的示例,但我有很长的列列表,所以GROUP SET不是一个选项) .

示例 -

val df = Seq((“1”,“x”,“a”),(“1”,“v”,“b”),(“3”,“x”,“c”)) . toDF(所有 “col1”, “col2上”, “COL3”)

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

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

显示器(df.select($ “COL1” $ “COL2” $ “COL3”)立方体(列表:_ *)AGG(SUM( “COL1”))) .

1 回答

  • 0

    Cube是GroupBY的扩展,您可以在其中获取用于分组的各种列组合的聚合结果 . 以下是使用groupBy可以实现的示例,

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

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

相关问题