apache-spark - Spark2.0什么时候用rdd?

标签 apache-spark apache-spark-sql apache-spark-2.0

有了新的 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/

相关文章:

apache-spark - Spark 2.0如何处理列可为空性?

hadoop - Spark集群将数字按顺序添加到文件中的每一行

python - 在 pyspark 中,为什么 `limit` 后跟 `repartition` 创建完全相等的分区大小?

scala - 如何在 SPARK 数据帧 v1.6 的左外连接中将 NULL 替换为 0

scala - 编写 spark UDF(而不是将 UDF 作为一个)时是否会降低性能?

apache-spark - Spark 函数别名 - 高性能 udfs

pyspark - spark join 引发 "Detected cartesian product for INNER join"

hadoop - Apache Spark : Apply existing mllib model on Incoming DStreams/DataFrames

java - 错误的符号引用。 WebUI.class 中的签名引用了包 org 中的术语 eclipse,该术语不可用

scala - Spark 将 DataFrame API 中的所有 NaN 替换为 null