【发布时间】:2021-09-22 06:02:30
【问题描述】:
CalcDf().show 对show 本身产生 13 个阶段 (0-12) +1(13)。
当我尝试将结果写入表格时,我假设应该只有 13 个阶段 (0-12),而不是我看到了额外的阶段 (13)。它来自哪里,它有什么作用?我没有执行任何重新分区或其他需要随机播放的操作。据我了解,火花应该只是将 1100 个文件写入表中,但这不是正在发生的事情。
CalcDf()
.write
.mode(SaveMode.Overwrite)
.insertInto("tn")
val dim = spark.sparkContext.broadcast(
spark.table("dim")
.as[Dim]
.map(r => r.id-> r.col)
.collect().toMap
)
spark.table("table")
.as[CustomCC]
.groupByKey(_.id)
.flatMapGroups{case(k, iterator) => CustomCC.mapRows(iterator, dim)}
.withColumn("time_key", lit("2021-07-01"))
【问题讨论】:
-
添加表
tn的详细信息,是否已分区? -
@vikas 它已分区。但是对于每一行
.withColumn("time_key", lit("2021-07-01")),硬编码的密钥都是相同的。
标签: scala apache-spark hadoop