如何在Spark Dataframe上的多列上进行透视

时间:2017-03-15 09:25:16

标签: scala apache-spark apache-spark-sql spark-streaming spark-dataframe

我正在尝试将Spark数据帧转移到多个列上,我正在使用Pivot函数,但是在我添加2列之后,它会给出像重载参数这样的错误。

  

这是添加第三列后重载的错误   方法值pivot with alternative:(pivotColumn:String,values:   的java.util.List [任何])org.apache.spark.sql.RelationalGroupedDa taset    (pivotColumn:String,values:   SEQ [任何])org.apache.spark.sql.RelationalGroupedDataset   (pivotColumn:String)org.apache.spark.sql.RelationalGroupedDataset   不能应用于(String,String,String)

这是我的工作:

 val df_new=df.join(df1, df("Col1")<=>df1("col1") && df1("col2")<=> df("col2")).groupBy(df("Col6"))
                             .agg(
                                 sum(df("Col1")).alias("Col1"), 
                                 sum(df("Col2")).alias("Col2")  ,
                                 sum(df("Col3")).alias("Col3")  ,
                                 sum(df("Col4")).alias("Col4")  ,
                                 sum(df("Col5")).alias("Col5")  
                                 ).select(
                                         Amount,'Col1, 'Col2,'Col3,'Col4,'Col5
                                          )

- 枢轴

val pivotdf=df_new.groupBy($"Col1").
                  pivot("Col1","Col2","Col3","col4")

我必须转向col1,Col2,col3,col4和col5。请指导我如何做到这一点。

0 个答案:

没有答案