数据框转换为RDD [图]斯卡拉 [英] Convert DataFrame to RDD[Map] in Scala
本文介绍了数据框转换为RDD [图]斯卡拉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想转换像创建一个数组:
I want to convert an array created like:
case class Student(name: String, age: Int)
val dataFrame: DataFrame = sql.createDataFrame(sql.sparkContext.parallelize(List(Student("Torcuato", 27), Student("Rosalinda", 34))))
当我收集数据框的结果,结果数组是数组[org.apache.spark.sql.Row] =阵列([托尔夸托,27],[罗莎琳达,34])
When I collect the results from the DataFrame, the resulting array is an Array[org.apache.spark.sql.Row] = Array([Torcuato,27], [Rosalinda,34])
我寻找到在RDD转换数据框[图]例如:
I'm looking into converting the DataFrame in an RDD[Map] e.g:
Map("name" -> nameOFFirst, "age" -> ageOfFirst)
Map("name" -> nameOFsecond, "age" -> ageOfsecond)
我试图通过使用地图: x._1
但这似乎并不为工作数组[spark.sql.row]
如何反正进行转换?
I tried to use map via: x._1
but that does not seem to work for Array [spark.sql.row]
How can I anyway perform the transformation?
推荐答案
您可以使用地图功能与模式匹配来这里做的工作。
You can use map function with pattern matching to do the job here
import org.apache.spark.sql.Row
dataFrame
.map { case Row(name, age) => Map("name" -> name, "age" -> age) }
这将导致 RDD [地图[字符串,任何]]
这篇关于数据框转换为RDD [图]斯卡拉的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文