如何使用 spark 将 map-reduce 流到 select N 列,文件夹下所有 csv 文件的前 M 行?

How to use spark for map-reduce flow to select N columns, top M rows of all csv files under a folder?

具体来说,假设我们有一个包含 10k 制表符分隔的 csv 文件的文件夹,这些文件具有以下属性格式(每个 csv 文件大约 10GB):

id  name    address city...
1   Matt    add1    LA...
2   Will    add2    LA...
3   Lucy    add3    SF...
...

并且我们根据上面的 "name"

进行了查找 table
name    gender
Matt    M
Lucy    F
...

现在我们有兴趣将每个 csv 文件的前 100,000 行输出为以下格式:

id  name    gender
1   Matt    M
...

我们可以使用 pyspark 来有效地处理这个问题吗?

如何并行处理这些 10k 的 csv 文件?

您可以在 python 中执行此操作以利用文件的第一行 1000 行:

top1000 = sc.parallelize("YourFile.csv").map(lambda line : line.split("CsvSeparator")).take(1000)