我知道可以使用rdd.toDS
将RDD转换为数据集。但是也存在rdd.toDF
。一个人真的有什么好处吗?
使用数据集API一天后,我发现几乎所有操作都会将我带到DataFrame(例如withColumn
)。在使用toDS
转换RDD后,我经常发现需要另一次转换为DataSet,因为有些东西再次将我带到了DataFrame。
我是否错误地使用了API?我应该坚持.toDF并且只在操作链的末尾转换为DataSet吗?或者之前使用toDS有什么好处?
这是一个小例子
spark
.read
.schema (...)
.json (...)
.rdd
.zipWithUniqueId
.map[(Integer,String,Double)] { case (row,id) => ... }
.toDS // now with a Dataset API (should use toDF here?)
.withColumnRenamed ("_1", "id" ) // now back to a DataFrame, not type safe :(
.withColumnRenamed ("_2", "text")
.withColumnRenamed ("_2", "overall")
.as[ParsedReview] // back to a Dataset