And*_*ski 6 scala apache-spark
我知道可以使用将RDD转换为数据集rdd.toDS。但是也存在rdd.toDF。彼此之间真的有任何好处吗?
在使用Dataset API一天后,我发现几乎所有的操作都将我带到DataFrame(例如withColumn)。用转换RDD后toDS,我经常发现需要再次转换为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
Run Code Online (Sandbox Code Playgroud)
小智 6
迈克尔·阿姆伯斯特(Michael Armburst)很好地解释了转移到数据集和数据框以及两者之间的区别。基本上在spark 2.x中,它们将数据集API和数据框API融合为一个,但略有不同。“ DataFrame只是通用行对象的DataSet。当您不知道所有字段时,DF就是答案”。

| 归档时间: |
|
| 查看次数: |
3383 次 |
| 最近记录: |