RDD,Dataframe,Dataset 中哪个更好用于在 spark 中进行 avro 柱状操作?

Which is better among RDD, Dataframe, Dataset for doing avro columnar operations in spark?

我们有一个用例,我们需要对 avro 数据集进行一些柱状转换。到目前为止,我们曾经 运行 MR 工作,现在想探索 spark。我正在学习一些教程,但不确定我们应该使用 RDD 还是 Dataframe/Dataset。由于 Dataframes 是按列存储的,因此使用 Dataframes 是否是正确的选择,因为我所有的转换本质上都是按列存储的?或者它没有太大的区别,因为在内部一切都基于 RDDs?

试图回答你的问题我 运行 进入所有三个数据结构之间的 comprehensive comparison

每个特定情况下的答案取决于您的 t运行sformations 的性质,而不是特定的序列化格式。一般来说,使用更高级别的 API 会提供更多便利,但使用低级别 APIs (RDD) 会带来更多的灵活性和控制。

从性能的角度来看,您的数据格式不会对您用来描述转换的 API 产生任何影响。

我建议尽可能使用最高级别 API(DataFrames),并且只有在您需要的某些操作无法以任何其他方式实现时才切换到 RDD。