我一直在尝试将RDD转换为DataFrame,然后再转回来。首先,我有一个类型为(Int, Int)的RDD,名为dataPair。然后,我使用以下代码创建了一个带有列标题的DataFrame对象:
val dataFrame = dataPair.toDF(header(0), header(1))
然后我使用以下代码将它从DataFrame转换回RDD:
val testRDD = dataFrame.rdd
使用.toDF将返回类型为org.apache.spark.sql.Row的RDD重新转换为RDD, 而不是(Int, Int)类型。但是,我尝试使用.toDF将其转换回RDD时出现了错误:
error: value toDF is not a member of org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]
我尝试为testRDD定义了一个类型为Data(Int, Int)的模式,但是遇到了类型不匹配的异常:
error: type mismatch;
found : org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]
required: org.apache.spark.rdd.RDD[Data]
val testRDD: RDD[Data] = dataFrame.rdd
^
我已经导入了
import sqlContext.implicits._