我有一个数据帧,并且我想按列进行分组,并使用相同的模式将这些组转换回数据帧。原因是我想要在整个组中映射一个带有签名DataFrame -> String
的函数。下面是我想:如何从分组数据中获取火花数据帧
val df = sc.parallelize(Seq((1,2,3),(1,2,4),(2,3,4))).toDF
val schema = df.schema
val groups = df.rdd.groupBy(x => x(0))
.mapValues(g => sqlContext.createDataFrame(sc.makeRDD(g.toList), schema))
.take(1)
这里就是我希望的:
scala> groups(0)._2.collect
Array[org.apache.spark.sql.Row] = Array([1,2,3], [1,2,4])
,但它不工作(任务与NullPointerException
失败的)......我想你不能地图一个引用火花上下文的函数,但我不知道如何实现这个功能?
能你提供一个例子。 您期望输入和输出什么? – giaosudau