如何将 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查询并执行
我想将一个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查询并执行