如何将变量参数传递给spark sql中的Cube函数以及多维数据集的agg函数?
我有一个列列表,我想在列上找到立方体函数,也想找到aggerations函数。
例如:
val columnsInsideCube = List("data", "product","country")
val aggColumns = List("revenue")
我想要这样的事情:
dataFrame.cube(columns:String*).agg(aggcolumns:String*)
这不像将scala数组传递给Cube。 Cube是datafram中的预定义类。我们必须以适当的方式发送它。
答案 0 :(得分:0)
您可以使用
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), ( ))
或者您可以使用其他库,例如
import com.activeviam.sparkube._