apache spark打破了rdd的血统,而不依赖hdfs

1rhkuytd  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(274)

我正在amazon spot示例上运行spark应用程序。最后,我将结果导出到s3上的Parquet文件。这些任务是内存密集型的,因此我必须使用大量分区(几十万)来运行初始计算。最后,我想把这些分区合并成几个大分区,并将它们保存到大的Parquet文件中。这就是我遇到麻烦的地方:
-如果我用的是 .coalesce() ,这是一个狭窄的转换,合并之前的整个沿袭将在少量分区上执行,这将导致OOM。
-如果我用的是 .repartition() ,我依赖hdfs来处理shuffle文件。这是使用spot示例时的一个问题,spot示例可能会停用,从而留下损坏/丢失的hdfs块。
-检查点也依赖于hdfs,所以我不能使用它。
-转换为 Dataframe 而back并没有真正打破血统( rdd.toDF.rdd ,我错过了什么吗?)。
总而言之,我正在寻找一种方法来合并到一个更小的分区中,只是为了将数据持久化到s3上—我希望使用原始分区进行计算。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题