【发布时间】:2020-08-12 23:23:17
【问题描述】:
我正在阅读高性能 Spark,作者提出以下声明:
虽然 Catalyst 优化器非常强大,但它目前遇到的挑战之一是具有非常大的查询计划。这些查询计划往往是迭代算法的结果,如图形算法或机器学习算法。一个简单的解决方法是在每次迭代结束时将数据转换为 RDD 并返回 DataFrame/Dataset,如示例 3-58 所示。
示例 3-58 标记为“Round trip through RDD to cut query plan”,转载如下:
val rdd = df.rdd
rdd.cache()
sqlCtx.createDataFrame(rdd. df.schema)
有谁知道需要这种解决方法的根本原因是什么?
作为参考,已针对此问题提交了一份错误报告,可通过以下链接获得: https://issues.apache.org/jira/browse/SPARK-13346
似乎没有修复,但维护者已经关闭了这个问题,并且似乎不相信他们需要解决它。
【问题讨论】:
标签: apache-spark apache-spark-sql rdd catalyst-optimizer