这篇文章声称在Spark中,DataFrame
等价于Dataset[Row]
,但是这篇博客文章表明DataFrame
有一个模式(schema)。
以该博客文章中将RDD转换为DataFrame
的示例为例:如果DataFrame
和Dataset[Row]
是相同的东西,那么将RDD
转换为DataFrame
应该很简单。
val rddToDF = rdd.map(value => Row(value))
但实际上它显示的是这个。
val rddStringToRowRDD = rdd.map(value => Row(value))
val dfschema = StructType(Array(StructField("value",StringType)))
val rddToDF = sparkSession.createDataFrame(rddStringToRowRDD,dfschema)
val rDDToDataSet = rddToDF.as[String]
显然,数据帧实际上是由行和模式组成的数据集。