Neh*_*haM 7 scala union-all dataframe apache-spark rdd
我想从一个可以匹配现有模式的字符串列表中创建一个DataFrame.这是我的代码.
val rowValues = List("ann", "f", "90", "world", "23456") // fails
val rowValueTuple = ("ann", "f", "90", "world", "23456") //works
val newRow = sqlContext.sparkContext.parallelize(Seq(rowValueTuple)).toDF(df.columns: _*)
val newdf = df.unionAll(newRow).show()
Run Code Online (Sandbox Code Playgroud)
如果我使用字符串列表,相同的代码将失败.我看到的区别在于创建了rowValueTuple一个Tuple.由于rowValues列表的大小动态变化,我无法手动创建Tuple*对象.我怎样才能做到这一点?我错过了什么?如何平整此列表以满足要求?
请欣赏你的帮助.
Vit*_*nko 13
DataFrame具有固定列数的模式,因此每个变量长度列表生成行似乎并不自然.无论如何,您可以使用现有架构从RDD [Row]创建DataFrame,如下所示:
val rdd = sqlContext.sparkContext.parallelize(Seq(rowValues))
val rowRdd = rdd.map(v => Row(v: _*))
val newRow = sqlContext.createDataFrame(rdd, df.schema)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35762 次 |
| 最近记录: |