我正在嘗試將 MapReduce 原則與 Python 一起使用,首先將文本中分離的單詞串列與其字符數進行映射,然后減少以顯示最長的單詞及其字符數。
查看視覺解釋 輸入是一個簡單的 text.txt 檔案,包含 3 個句子。請參閱下面我的映射器:
#MAPPER
#!/usr/bin/python
import sys
for line in sys.stdin:
for word in line.strip().split():
print(str(len(word)) '\t' word)
感謝您對 Reducer 的幫助。要求的結果是“本文中最長的單詞是 xxxxxxxxx 和 yyyyyyyy,有 xx 個字符”
uj5u.com熱心網友回復:
這可以滿足您的要求。這僅保留前 5 個單詞,這使得排序更容易。回圈中的“列印”僅用于除錯,可以洗掉。
import sys
top5 = []
for line in sys.stdin:
for word in line.strip().split():
top5.append( (len(word),word) )
top5.sort( reverse=True )
top5 = top5[:5]
print(top5)
print( "Top 5 words by length are:" )
print(top5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/373061.html
上一篇:Hive,如何按空值列進行磁區,將所有空值放在一個磁區中
下一篇:HTML中的本地音頻
