wordcount(词频统计)案例作为入门案例,几乎是大数据领域都很热衷的经典案例,那么今天就通过使用pyspark来实现一下吧,废话不多说,直接上代码:
import sys
from pyspark import SparkConf, SparkContext
if __name__ == '__main__':
if len(sys.argv) != 3:
print("Usage: wordcount <input> <output>",file=sys.stderr)
sys.exit(-1)
conf = SparkConf()
sc = SparkContext(conf=conf)
print("sys.argv=",sys.argv)
# 结果打印到控制台
def printResult():
counts = sc.textFile(sys.argv[1])\
.flatMap(lambda line:line.split("\t"))\
.map(lambda x:(x,1))\
.reduceByKey(lambda a,b:a+b)
output = counts.collect()
for (word,count) in output:
print("%s: %i"%(word,count))
# 结果保存到文件
def saveFile():
sc.textFile(sys.argv[1]) \
.flatMap(lambda line: line.split("\t")) \
.map(lambda x: (x, 1)) \
.reduceByKey(lambda a, b: a + b)\
.saveAsTextFile(sys.argv[2])
#printResult()
saveFile()
sc.stop()
提交到服务器上执行:
第一个参数是输入路径(本例中是一个目录,读取的是该目录下的所有文件),第二个参数是输出路径(wc目录刚开始不存在,提交后会自动生成),提交后在输出路径下出现了:
好了,这就是使用PySpark来完成的wordcount经典案例,继续努力!