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

时间:2015-10-04 16:49:47

标签: scala apache-spark dna-sequence

我有一个大文本文件(3 GB),它是DNA参考。我想将它分成几部分,以便我能够处理它。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果您希望每个块中都有特定数量的行,则可以尝试以下操作:

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之间有行