Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何在spark中处理大型文本文件?_Scala_Apache Spark_Dna Sequence - Fatal编程技术网

Scala 如何在spark中处理大型文本文件?

Scala 如何在spark中处理大型文本文件?,scala,apache-spark,dna-sequence,Scala,Apache Spark,Dna Sequence,我有一个大的文本文件(3 GB),它是DNA参考。我想把它切成几部分,这样我就能处理它了 所以我想知道如何用Spark分割文件。我目前只有一个具有4 GB内存的节点听起来您想将文件作为多个分区加载。如果您的文件是可拆分的(文本文件、snappy、sequence等),您可以简单地提供加载它的分区数,即sc.textFile(inputPath、numPartitions)。如果您的文件不可拆分,它将作为一个分区加载,但您可以在加载的RDD上调用.repartition(numPartitions

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


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

听起来您想将文件作为多个分区加载。如果您的文件是可拆分的(文本文件、snappy、sequence等),您可以简单地提供加载它的分区数,即
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)
rdd=sc.textFile(inputPath).zipWithIndex()

rdd2=rdd.filter(x=>lower\u no\u of\u line在没有指定分区的情况下,您现在面临的问题是什么?