繁体   English   中英

如何在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之间有highest_no_of_line lowest_no_of_line

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM