使用pyspark的SQL API时,有时我会看到人们建议访问底层RDD来执行转换。 Spark对此有意使用什么?他们说RDD API将在Spark 3.0中删除,那么就形式和将来的可比性而言,今天编写的所有代码都应该避免使用底层的RDD吗?
答案 0 :(得分:0)
Spark sql和数据框架API是高级API,易于与催化剂优化器一起使用,即,您将在这些API中编写的代码将由其催化剂引擎自动优化。
RDD是一种低级api,仅在需要处理高级API无法处理的完全非结构化原始数据的地方使用。
即使您将使用数据框和sql编写代码,也会通过spark自动将其转换为rdds。
建议您使用高级API进行编写,因为您可以利用火花催化剂优化器。如果您将使用rdd编写代码,则不会对其进行优化,因此您需要优化代码。
尽管我不确定将来是否会删除rdd api,但目前大多数工作正在进行数据框架和sql支持