Spark:在不使用收集的情况下从多个文件中对RDD进行排序

Spark: Sorting RDD from multiple files without using collect

我在单个 RDD 中的某个目录中有 "uploaded" N 个文件

val data = sc.textFile("file:///myPath/*.txt")

例如我的 2 个文件各包含 5 行。

文件 1

A
B
C
D
E

文件 2

F
G
H
I
J

如果我将 sortBy 添加到我的代码中:

val sortedData = data.sortBy(x => x)

我没有得到排序后的数据,而是随机的 RDD:

J
B
C
E
A
D
G
F
H
I

收集可以帮助我,但是

1)对于大的RDD来说并不理想

2) 它 returns 不是 RDD,而是一个数组(我应该重新并行化)

提前致谢

FF

如果有多个rdds,可以使用union方法:

val rdd = rdd1.union(rdd2)

这将聚合两个 rdd,然后您可以对新的 rdd 进行排序。

但在你的情况下,你可以将所有数据读入同一个 rdd,然后对其进行排序。

编辑:

我创建了 2 个包含 file1 和 file2 的文件,并完成了以下操作: