【发布时间】:2018-08-22 01:50:54
【问题描述】:
我是 spark 新手,可以在这里使用一些指导。 我们有一些基本代码要读入 csv、缓存并输出到 parquet:
1. val df=sparkSession.read.options(options).schema(schema).csv(path)
2. val dfCached = df.withColumn()....orderBy(some Col).cache()
3. dfCached.write.partitionBy(partitioning).parquet(outputPath)
AFAIK,一旦我们调用 parquet 调用(一个动作),应该执行缓存命令以在应用该动作之前保存 DF 的状态。
在我看到的 spark UI 中:
- 执行上述 #2 中的
cache调用的单个分阶段作业 - 然后是一个正在执行
parquet调用的作业。这项工作有2个阶段; 1 似乎在重复缓存步骤,而第二个执行转换为镶木地板。 (见下图)
为什么我有缓存 Job 和缓存 Stage? 我希望只有一个或另一个,但似乎我们在这里缓存了两次。
【问题讨论】:
-
你在哪个 spark 版本上运行这个?
-
@sai Spark 版本 2.3.0
标签: apache-spark