如何处理spark中的大文本文件?

How to handle large text file in spark?

我有一个很大的文本文件 (3 GB),它是 DNA 参考。我想把它分成几部分,这样我就可以处理它。

所以我想知道如何使用Spark对文件进行切片。我目前只有一个 4 GB 内存的节点

听起来您想将文件加载为多个分区。如果您的文件是可拆分的(文本文件、snappy、序列等),您可以简单地提供将加载文件的分区数 sc.textFile(inputPath, numPartitions)。如果你的文件是不可分割的,它会被加载为一个分区,但是你可以在加载的 RDD 上调用 .repartition(numPartitions) 来重新分区成多个分区。

如果你想在每个块中有特定数量的行,你可以试试这个:

rdd=sc.textFile(inputPath).zipWithIndex()
rdd2=rdd.filter(x=>lowest_no_of_line<=x._2 & x._2<=highest_no_of_line).map(x=>x._1).coalesce(1,false)
rdd2.saveAsTextFile(outputpath)

现在您保存的文本文件将包含 highest_no_of_linelowest_no_of_line

之间的行