安装好Spark 后,自带了一些demo, 路径在Spark根目录/examples/src/main/python/
里面有些例子,例如统计字数的 wordcount.py
import sys
from operator import add
from pyspark import SparkContext
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
if __name__ == "__main__":
if len(sys.argv) != 2:
print >> sys.stderr, "Usage: wordcount "
exit(-1)
sc = SparkContext(appName="PythonWordCount")
lines = sc.textFile(sys.argv[1], 1)
counts = lines.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(add)
output = counts.collect()
for (word, count) in output:
print "%s: %i" % (word, count)
sc.stop()
写了一个小demo,就是练习一下api的使用,做业务很方便。针对于大数据文件做统计分析的。比如几十兆上百兆的我们单机处理,上G的就放在hadoop 的 hdfs上。
下面是一个学生成绩单。四列字段:学生,以及三科成绩。其中学生有重复的(比如额外加分的情况,需要合并分析)。
yang 85 90 30
wang 20 60 50
zhang 90 90 90
li 100 54 0
yanf 0 0 0
yang 12 0 0
当然实际中数据要很多,比如很多列,而且几十万行甚至几百万行。这里是一个demo ,相当于在部署前测试。
在 Spark根目录/example/src/main/python/ 下新建一个 students.py :
#coding=utf-8