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。
我们有一个用例,我们需要对 avro 数据集进行一些柱状转换。到目前为止,我们曾经 运行 MR 工作,现在想探索 spark。我正在学习一些教程,但不确定我们应该使用 RDD 还是 Dataframe/Dataset。由于 Dataframes 是按列存储的,因此使用 Dataframes 是否是正确的选择,因为我所有的转换本质上都是按列存储的?或者它没有太大的区别,因为在内部一切都基于 RDDs?
试图回答你的问题我 运行 进入所有三个数据结构之间的 comprehensive comparison。
每个特定情况下的答案取决于您的 t运行sformations 的性质,而不是特定的序列化格式。一般来说,使用更高级别的 API 会提供更多便利,但使用低级别 APIs (RDD) 会带来更多的灵活性和控制。
从性能的角度来看,您的数据格式不会对您用来描述转换的 API 产生任何影响。
我建议尽可能使用最高级别 API(DataFrames),并且只有在您需要的某些操作无法以任何其他方式实现时才切换到 RDD。