打破Spark谱系

fykwrbwg  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(322)

我有一个递归的spark算法,它对一个数据集应用10天的滑动窗口。
原始数据集是从按日期分区的配置单元表加载的。
在每次迭代中,对包含十天窗口的数据集应用一组复杂的操作。
最后一个日期被插入到原始配置单元表中,下一个日期从配置单元加载并联合到剩余的九天。
我意识到我需要打破星火血统,以防止dag变得难以管理。
我相信我有两个选择:
检查点—涉及到对hdfs的昂贵写入。
转换为rdd并再次返回
spark.createdataset(myds.rdd)
使用第二个选项有什么缺点吗?我假设这是内存操作,因此更便宜。

9nvpjoqh

9nvpjoqh1#

检查点和转换回rdd确实是截断沿袭的最佳/唯一方法。
许多(全部?)spark-ml数据集/Dataframe算法实际上是使用rdds实现的,但是公开的api是ds/df,因为优化器没有并行化,并且沿袭了迭代/递归实现的规模。
在rdd之间进行转换会有成本,但比文件系统检查点选项要小。

相关问题