Scala 如何将rdd同时保存到不同的S3存储桶

Scala 如何将rdd同时保存到不同的S3存储桶,scala,apache-spark,apache-spark-sql,spark-dataframe,hadoop2,Scala,Apache Spark,Apache Spark Sql,Spark Dataframe,Hadoop2,我想知道如何将计算出的rdd保存到不同的位置。 还扩展了相同的功能,用于无需计算的通知 rdd = <do some action> rdd= 据我所知,rdd.saveAstextFile(“s3://”)将存储到location1, 但是如果我想存储到位置2也要怎么做? 我不确定persist/cache(我的理解是它将在主节点中cache/persist)是否工作,因为rdd的大小非常大 请帮忙 我的理解是它将在主节点中缓存/持久化 你在哪里找到的?这是不对的。根据以下sp

我想知道如何将计算出的rdd保存到不同的位置。 还扩展了相同的功能,用于无需计算的通知

rdd = <do some action>
rdd=
据我所知,
rdd.saveAstextFile(“s3://”)将存储到
location1
, 但是如果我想存储到
位置2
也要怎么做? 我不确定
persist/cache
(我的理解是它将在主节点中
cache/persist
)是否工作,因为
rdd
的大小非常大

请帮忙

我的理解是它将在主节点中缓存/持久化

你在哪里找到的?这是不对的。根据以下spark文档的说明

Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。在持久化RDD时,每个节点将其计算的任何分区存储在内存中,并在该数据集(或从该数据集派生的数据集)上的其他操作中重用这些分区。这使得未来的行动更快(通常超过10倍)。缓存是迭代算法和快速交互使用的关键工具

而且

cache()方法是使用默认存储级别(仅限StorageLevel.MEMORY_)的缩写

i、 e cache()类似于persist(仅限StorageLevel.MEMORY_)。 按照此链接决定根据您的要求使用哪个存储级别。

您可以在以下两个位置使用保存:

rdd.cache()
rdd.saveAstextFile("s3://<location1>")
rdd.saveAstextFile("s3://<location2>")
rdd.cache()
saveAstextFile(“s3://”)
saveAstextFile(“s3://”)
详情如下: