我们有一个用例,我们需要在avro数据集上做一些列式转换。我们以前一直在运行MR作业,现在想探索spark。我正在浏览一些教程,不确定我们是否应该使用RDD或DataframeDataset。由于Dataframes是列式存储,所以使用Dataframes是一个正确的选择,因为我所有的变换都是列式的?或者说,由于内部所有的东西都是基于RDD的,所以使用Dataframes并没有什么区别。
从性能的角度来看,你的数据格式不会对你用来描述变换的API产生任何影响。
我建议尽可能使用最高级别的API(DataFrames),只有当你需要的某些操作无法用其他方式实现时,才切换到RDDs。
试图回答你的问题时,我遇到了 综合比较 所有三种数据结构之间。
在每个特定情况下,答案取决于你的转换的性质,而不是特定的序列化格式。一般来说,使用更高级别的API可以提供更多的便利,但低级别的API(RDD)可以提供更多的灵活性和控制。