1
我有一個Apache的日誌文件,我想獲取訪問量最大的網頁,然後打印前1000個訪問量最大的網頁的訪問量。如何打印Spark的輸出?
我不知道spark庫的輸出類型是什麼,matplotlib庫給了我錯誤。 您能否幫我解釋一下如何轉換輸出的類型並打印相關圖形。
from __future__ import print_function
import sys
import re
import matplotlib.pyplot as plt
from random import random
from operator import add
from pyspark import SparkContext
if __name__ == "__main__":
sc = SparkContext(appName="WordCount")
lines = sc.textFile("/home/globalscratch/wikipedia_small.txt")
def getwords(line):
words = line.split(" ")
totalwords = 0
out = []
for word in words:
if len(word) >= 1:
out += [ word.lower() ]
return out
words = lines.flatMap(getwords)
wordse = words.map(lambda x : [x , 1]).reduceByKey(add)
s = wordse.map(lambda x : [x[1]]).sortBy(lambda x : x[0] , False)
for i in s.take(1000):
print (i)
plt.plot(s)
plt.show()
#stop Spark content
sc.stop()
的繪圖功能是打印輸出前的是:
[1833572]
[951269]
[745503]
[675384]
[555030]
[507073]
[261436]
[236230]
[225914]
[199161]
....
使用當前代碼我可以打印列表,我需要繪製一個圖形,並且出現錯誤。 –
然後你可以發佈'wordse.takeOrdered(10,lambda x:-x [1])'的輸出並指定你想要哪種類型的繪圖 – lanenok