Apache Spark:从Spark集群读取RDD



我在Spark集群中有一个RDD。在客户端,我调用collect(),然后从收集的数据创建一个java流,并从该流创建一个CSV文件。

当我在RDD上调用collect()时,我会将所有数据带到客户端的内存中,这是我试图避免的。有什么方法可以从Spark集群中获得RDD作为流吗?

我有一个要求,不要把创建CSV的逻辑带到Spark集群,并把它放在客户端。

我使用的是独立集群和Java API。

我不是专家,但我想我明白你的要求了。如果可以的话,请发布一些代码来帮助它变得更好。

目前,有一些操作是在每个分区的基础上进行的,但我不知道这是否能让你回家,请参阅toLocalIterator关于这个问题的第一个答案:Spark:从RDD检索大数据到本地机器的最佳实践

您可以使用第二个参数"切片"来控制分区的数量(我相信每个节点),但它没有得到很好的记录。如果您在Spark编程指南中搜索分区,您肯定会有一个好主意。

http://spark.apache.org/docs/latest/programming-guide.html

最新更新