我正在使用Spark将2100万条记录插入Cassandra表中。 spark作业大约需要一个小时,并且可以成功插入所有记录,但是挂在最后一个阶段(62/63)。
我的Spark属性:
spark.driver.memory 10g
spark.executor.cores 1
spark.executor.instances 40
spark.executor.memory 4g
将记录插入Cassandra并在最后阶段挂起的行-
raw_data_final.rdd.saveToCassandra("marketing_dev1", "offer_detail_11", writeConf = WriteConf(ttl = TTLOption.perRow("ttl")))
如何使Spark作业成功退出而无需在最后阶段挂起?
答案 0 :(得分:0)
这似乎是数据偏斜的问题。请粘贴您的代码以进行进一步分析。
请检查是否在Cassandra中插入了任何行。我怀疑会不会发生插入。
除此之外,您还可以提供示例数据并检查是否提供了可以均匀划分数据的分区列
答案 1 :(得分:0)
这是因为我有一个键列之一的值为空的记录。删除该记录后,我的工作成功了。