如何查看和分析100g的文本文件(3)

265 阅读1分钟

一、使用来自StackOverflow数据库的公开数据

数据集下载网址archive.org/details/sta…

打开网站地址需要技巧:),数据量很大,要保证网络畅通,下载的文件是压缩格式,解压后的大小从十几兆到一百五十多G,提前预留好硬盘空间。

step by step 循序渐进

二、在java或Scala中,流式读取大文本文件可以有效地处理大规模数据,而不必一次性将整个文件加载到内存中。以下是scala代码,欢迎改为java。

import scala.io.Source

object ReadStreamLines {
def main(args: Array[String]): Unit = {
// 假设文件路径是 "path/to/your/largefile.txt"
val filePath = "G:\stackoverflow/Comments.xml"

// 使用Source对象读取文件
val source = Source.fromFile(filePath)

try {
// source.getLines()方法返回一个迭代器,可以逐行读取文件内容。 val firstTenLines = source.getLines()

var lineCount = 0L
val start = System.currentTimeMillis()
for (line <- firstTenLines ) {
println(line)
lineCount += 1
}
val end = System.currentTimeMillis()
print("end-start:")
println(end-start)
println(lineCount)
} finally {
// 确保在完成后关闭Source对象
source.close()
} } }

处理时间?

Comments表 23.3G 90380326行 777185毫秒是 12.95 分钟

处理耗时12.95分钟,性能瓶颈在哪里?如何进一步提高性能?且听下回分解