【发布时间】:2019-04-06 22:18:12
【问题描述】:
我想知道我怎么能有两个完全相同的阶段,尽管我在 Spark 中的每个操作之前缓存了我的数据。 你能看看下面的截图吗,我觉得它很奇怪。这是否意味着我在阶段中执行了两次任务?
不幸的是,很难给出代码示例,但我会尝试解释我的工作。
- 从 CSV 读取数据
- 对特定列进行一些转换。
- 应用架构 ->
spark.Session.createDataFrame(df.rdd,schema) - 在第 3 点创建的 DF 上使用不同的过滤器创建 7 个新数据帧)
- 出于比较原因,从第 4 点获取两个数据帧并将它们传递给另一个方法。
我在第 2) 点和第 4) 点之后只坚持将要比较的两个数据帧。并在比较后不坚持。比较是一个漫长而复杂的过程。
【问题讨论】:
-
我发现这些 DAG 有时难以解释。我
-
在持久化之后运行一些操作,如 df.count 或 df.take(n) 并查看阶段是否发生变化。
-
遗憾的是没有变化。 DAG 看起来一样。
-
有相同的更新吗?
标签: scala apache-spark apache-spark-sql