首先創建一個大於內存的文本文件, 這裏創建的寫了20億個單詞的文件是13G, 我的電腦內存是8G
import random
from datetime import datetime
start = datetime.now()
f = open("E:/big.txt", 'w', encoding="utf-8")
words = ["hello", "spark", "hadoop", "world", "hive", "flink"]
num = 0
while True:
index = random.randint(0, 5)
line_10 = [words[index] + '\n'] * 100
f.write("".join(line_10))
num += 1
if num == 2e+7:
break
f.close()
end = datetime.now()
print("時間消耗:", (end - start))
爲了節省時間一次寫相同的內容寫十行, 總共耗時
下面是讀取並統計所有的單詞
start = datetime.now()
f = open("E:/big.txt", 'r', encoding="utf-8")
mydict = {}
line = f.readline()
while line:
mydict[line] = mydict.get(line, 0) + 1
line = f.readline()
f.close()
print(mydict)
wordSum = 0
for key, value in mydict.items():
wordSum += value
print("單詞總數:", wordSum)
end = datetime.now()
print("時間消耗:", (end - start))
總共耗時大約一個小時的時間, 我不知道有沒有其他的更高效的讀取文本文件的方法, 如果有請朋友們告訴一聲
如果直接讀取全部的內容則會直接報內存溢出