python - 在 Spark SQL API 中访问 RDD 的最佳实践是什么?
问题描述
在使用 pyspark 的 SQL API 时,我有时会看到人们建议访问底层 RDD 来执行转换。Spark 在这方面的有意使用是什么?他们说 RDD API 将在 Spark 3.0 中被删除,那么今天编写的所有代码是否应该避免使用底层 RDD,以考虑形式和未来的可比性?
解决方案
Spark sql 和数据框架 API 是高级 API,易于与催化剂优化器一起使用,即您将在这些 API 中编写的代码将由其催化剂引擎自动优化。
RDD 是一个低级 API,只能用于需要处理高级 API 无法处理的完全非结构化原始数据的情况。
即使您将使用数据框和 sql 编写代码,它也会被 spark 自动转换为 rdds。
建议使用高级 API 编写,因为您可以使用火花催化剂优化器。如果您将使用 rdd 编写,那么它不会被优化,您需要优化您的代码。
虽然我不确定将来是否会删除 rdd api,但目前大部分工作都在进行数据框和 sql 支持
推荐阅读
- html - 如何使单击链接下载图像?
- c# - ASP.NET - GET 请求上的 API 400 错误
- python - keras 的 binary_crossentropy 损失函数范围
- java - 如何从对象创建 json 字符串?– 它返回一个空的“[]”?
- gradle - Gradle:主要源集依赖于其他源集?
- python - ValueError: 时间数据 '' 与格式 '%Y-%m-%dT%H:%M:%S' 不匹配
- r - 当我想要一个接近 0 的正态分布并且 y 是百分比时,ggplot 没有正确缩放
- rabbitmq - 铲子的每条消息 TTL 行为
- c++ - 在 BOOST_CHECK_EXCEPTION 宏中使用逗号
- python-3.x - 从列表和字典中制作字典