文档首页/
MapReduce服务 MRS/
开发指南(普通版_3.x)/
Spark2x开发指南(普通模式)/
开发Spark应用/
Spark Core样例程序/
Spark Core样例程序(Python)
更新时间:2024-06-27 GMT+08:00
Spark Core样例程序(Python)
功能简介
统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
代码样例
下面代码片段仅为演示,具体代码参见collectFemaleInfo.py:
def contains(str, substr):
if substr in str:
return True
return False
if __name__ == "__main__":
if len(sys.argv) < 2:
print "Usage: CollectFemaleInfo <file>"
exit(-1)
spark = SparkSession \
.builder \
.appName("CollectFemaleInfo") \
.getOrCreate()
"""
以下程序主要实现以下几步功能:
1.读取数据。其是传入参数argv[1]指定数据路径 - text
2.筛选女性网民上网时间数据信息 - filter
3.汇总每个女性上网时间 - map/map/reduceByKey
4.筛选出时间大于两个小时的女性网民信息 - filter
"""
inputPath = sys.argv[1]
result = spark.read.text(inputPath).rdd.map(lambda r: r[0])\
.filter(lambda line: contains(line, "female")) \
.map(lambda line: line.split(',')) \
.map(lambda dataArr: (dataArr[0], int(dataArr[2]))) \
.reduceByKey(lambda v1, v2: v1 + v2) \
.filter(lambda tupleVal: tupleVal[1] > 120) \
.collect()
for (k, v) in result:
print k + "," + str(v)
# 停止SparkContext
spark.stop()
父主题: Spark Core样例程序