0

我正在编写 Spark 应用程序(单客户端)并处理许多我想在其上运行算法的小文件。他们每个人都使用相同的算法。但是不能将文件加载到同一个 RDD 中以使算法起作用,因为它应该在一个文件边界内对数据进行排序。
今天我一次处理一个文件,结果我的资源利用率很低(每个操作的数据量很小,开销很大)
有没有办法同时对多个 RDD 执行相同的操作/转换(并且只使用一个驱动程序)?还是我应该寻找另一个平台?因为这种操作模式对于 Spark 来说并不是经典的。

4

1 回答 1

1

如果您使用SparkContext.wholeTextFiles,那么您可以将文件读入一个 RDD 并且 RDD 的每个分区都将具有单个文件的内容。然后,您可以使用 分别处理每个分区,您要对每个文件应用的排序函数SparkContext.mapPartitions(sort_file)在哪里。sort_file只要您的文件足够小以至于可以在单个分区中处理它们,这将比您当前的解决方案更好地使用并发性。

于 2015-10-04T14:21:25.777 回答