有了新的 SparkSQL API,我们似乎不再需要 RDD。由于 RDD 很昂贵,看来我们应该避免使用它。有人可以解释什么时候是在 Spark2 中使用 RDD 的好时机吗?
最佳答案
it seems that we don't need RDD anymore
RDD API 更通用,实际上 SQL API 是在 RDD API 之上构建的,具有一系列扩展。
Since RDD is expensive, it seems that we should avoid it.
RDD API 本身并不昂贵。它只是不提供与 SQL API 相同的优化。您仍然可以在 RDD 之上构建高性能应用程序(例如检查 org.apache.spark.ml
)。
Can someone explain when is a good time to use RDD in Spark2?
它是基于意见的,但如果您需要端到端的类型安全或需要大量使用没有内置编码器的类型,RDD API 是一个自然的选择。
当执行顺序很重要时(您可以使用 SQL 创建自己的规划器规则,但这需要更多的努力)或者您需要低级控制(如用户定义的 Partitioners
),您可能更喜欢 RDD .
关于apache-spark - Spark2.0什么时候用rdd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080408/