【问题标题】:How to pass variable arguments to the Cube function in spark sql?如何将变量参数传递给 spark sql 中的 Cube 函数?
【发布时间】:2016-06-14 14:40:16
【问题描述】:

如何将变量参数传递给spark sql中的Cube函数以及Cube的agg函数?

我有一个列列表,我想在列上找到立方体函数以及 aggerations 函数。

例如:

val columnsInsideCube = List("data", "product","country")
val aggColumns = List("revenue")

我想要这样的东西:

dataFrame.cube(columns:String*).agg(aggcolumns:String*)

这不像将 scala 数组传递给 Cube。 Cube是dataframe中预定义的类。我们必须以适当的方式发送它。

【问题讨论】:

标签: apache-spark-sql cube spark-dataframe


【解决方案1】:

你可以使用

Spark(1.4 版中的新功能)

import pyspark.sql.DataFrame.cube
df.cube("name", df.age).count().orderBy("name", "age").show()

另见How to use "cube" only for specific fields on Spark dataframe?


或 HiveSQL

GROUP BY a, b, c WITH CUBE

或者相当于

GROUP BY a, b, c GROUPING SETS ( (a, b, c), (a, b), (b, c), (a, c), (a), (b), (c), ( ))

https://cwiki.apache.org/confluence/display/Hive/Enhanced+Aggregation,+Cube,+Grouping+and+Rollup#space-menu-link-content


或者您可以使用其他库,例如

import com.activeviam.sparkube._

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多