首页 > 解决方案 > 在 Spark SQL API 中访问 RDD 的最佳实践是什么?

问题描述

在使用 pyspark 的 SQL API 时,我有时会看到人们建议访问底层 RDD 来执行转换。Spark 在这方面的有意使用是什么?他们说 RDD API 将在 Spark 3.0 中被删除,那么今天编写的所有代码是否应该避免使用底层 RDD,以考虑形式和未来的可比性?

标签: pythonapache-sparkpysparkapache-spark-sql

解决方案


Spark sql 和数据框架 API 是高级 API,易于与催化剂优化器一起使用,即您将在这些 API 中编写的代码将由其催化剂引擎自动优化。

RDD 是一个低级 API,只能用于需要处理高级 API 无法处理的完全非结构化原始数据的情况。

即使您将使用数据框和 sql 编写代码,它也会被 spark 自动转换为 rdds。

建议使用高级 API 编写,因为您可以使用火花催化剂优化器。如果您将使用 rdd 编写,那么它不会被优化,您需要优化您的代码。

虽然我不确定将来是否会删除 rdd api,但目前大部分工作都在进行数据框和 sql 支持


推荐阅读