如何将 Spark DataFrame 列转换为列表?

How to convert a Spark DataFrame column into a list?

我想将一个Spark DataFrame转换为另一个DataFrame,具体方式如下:

我有 Spark DataFrame:

col  des
A    a
A    b
B    b
B    c

作为操作的结果,我还希望有一个 Spark DataFrame 作为:

col  des
A    a,b
B    b,c

我尝试使用:

result <- summarize(groupBy(df, df$col), des = n(df$des))

结果我得到了计数。是否有任何参数(summarize 或 agg)将列转换为列表或类似的东西,但假设所有操作都在 Spark 上完成?

提前致谢

这里是scala的解决方法,SparkR需要自己琢磨

  val dataframe = spark.sparkContext.parallelize(Seq(
    ("A", "a"),
      ("A", "b"),
      ("B", "b"),
      ("B", "c")
  )).toDF("col", "desc")

  dataframe.groupBy("col").agg(collect_list(struct("desc")).as("desc")).show

希望对您有所帮助!

sparkR 代码:

    sc <- sparkR.init()
    sqlContext <- sparkRSQL.init(sc)

    #create R data frame

    df <- data.frame(col= c("A","A","B","B"),des= c("a","b","b","c"))

    #converting to spark dataframe

    sdf <- createDataFrame( sqlContext, df)

    registerTempTable(sdf, "sdf")

    head(sql(sqlContext, "SQL QUERY"))

在里面写入对应的sql查询并执行