在spark中,RDD、Dataframe、Dataset中哪个更好地进行avro列式操作?

问题描述 投票:0回答:1

我们有一个用例,我们需要在avro数据集上做一些列式转换。我们以前一直在运行MR作业,现在想探索spark。我正在浏览一些教程,不确定我们是否应该使用RDD或DataframeDataset。由于Dataframes是列式存储,所以使用Dataframes是一个正确的选择,因为我所有的变换都是列式的?或者说,由于内部所有的东西都是基于RDD的,所以使用Dataframes并没有什么区别。

dataframe apache-spark apache-spark-sql rdd apache-spark-dataset
1个回答
1
投票

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

我建议尽可能使用最高级别的API(DataFrames),只有当你需要的某些操作无法用其他方式实现时,才切换到RDDs。


1
投票

试图回答你的问题时,我遇到了 综合比较 所有三种数据结构之间。

在每个特定情况下,答案取决于你的转换的性质,而不是特定的序列化格式。一般来说,使用更高级别的API可以提供更多的便利,但低级别的API(RDD)可以提供更多的灵活性和控制。

© www.soinside.com 2019 - 2024. All rights reserved.