Pyspark学习入门一:wordcount实例学习

    最近的工作可能要向大数据平台转移了,所以学习当今主流的大数据处理平台Hadoop和Spark显得尤为重要了,经过一番折腾之后终于在本地的PC机上搭建了Spark的环境,平时最多使用的是python,Spark对python提供了Pyspark模块,能够方便地使用Spark,今天抽时间简单实践了一下,编写wordcount的小例子,之后有时间继续学习:

#!usr/bin/env python
# encoding:utf-8
from __future__ import print_function


'''
__Author__:沂水寒城
功能:基于 Spark 的 wordcount 实例
'''




import sys
from operator import add
from pyspark.sql import SparkSession


def wordCountFunc(para):
    '''
    词频统计函数 
    '''
    spark=SparkSession.builder.appName("PythonWordCount").getOrCreate()
    lines=spark.read.text(para).rdd.map(lambda r: r[0])
    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))
    spark.stop()


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: wordcount <file>", file=sys.stderr)
        exit(-1)
    wordCountFunc(sys.argv[1])
    

我用到的数据如下:

将 进 酒 君 不 见 百 度 汉 语 李 白 君 不 见 黄 河 之 水 天 上 来 奔 流 到 海 不 复 回 君 不 见 高 堂 明 镜 悲 白 发 朝 如 青 丝 暮 成 雪 人 生 得 意 须 尽 欢 莫 使 金 樽 空 对 月 天 生 我 材 必 有 用 千 金 散 尽 还 复 来 烹 羊 宰 牛 且 为 乐 会 须 一 饮 三 百 杯 岑 夫 子 丹 丘 生 将 进 酒 杯 莫 停 与 君 歌 一 曲 请 君 为 我 倾 耳 听 钟 鼓 馔 玉 不 足 贵 但 愿 长 醉 不 复 醒 古 来 圣 贤 皆 寂 寞 惟 有 饮 者 留 其 名 陈 王 昔 时 宴 平 乐 斗 酒 十 千 恣 欢 谑 主 人 何 为 言 少 钱 径 须 沽 取 对 君 酌 五 花 马 千 金 裘 呼 儿 将 出 换 美 酒 与 尔 同 销 万 古 愁 

结果如下:

: 1
一: 2
言: 1
玉: 1
同: 1
成: 1
且: 1
丘: 1
会: 1
钟: 1
欢: 2
听: 1
到: 1
河: 1
水: 1
昔: 1
见: 3
必: 1
但: 1
陈: 1
李: 1
发: 1
乐: 2
酒: 4
明: 1
停: 1
惟: 1
换: 1
尽: 2
语: 1
马: 1
饮: 2
愿: 1
其: 1
对: 2
呼: 1
尔: 1
愁: 1
流: 1
如: 1
斗: 1
万: 1
有: 2
羊: 1
复: 3
千: 3
美: 1
醒: 1
五: 1
君: 6
朝: 1
天: 2
耳: 1
贵: 1
主: 1
十: 1
寂: 1
黄: 1
之: 1
何: 1
醉: 1
取: 1
留: 1
裘: 1
牛: 1
寞: 1
恣: 1
来: 3
曲: 1
平: 1
时: 1
须: 3
出: 1
销: 1
堂: 1
将: 3
月: 1
王: 1
上: 1
与: 2
岑: 1
得: 1
高: 1
钱: 1
贤: 1
用: 1
莫: 2
花: 1
足: 1
为: 3
沽: 1
倾: 1
不: 6
歌: 1
子: 1
奔: 1
进: 2
镜: 1
谑: 1
请: 1
烹: 1
空: 1
百: 2
者: 1
径: 1
皆: 1
三: 1
名: 1
意: 1
少: 1
鼓: 1
馔: 1
丝: 1
生: 3
圣: 1
度: 1
夫: 1
暮: 1
宰: 1
悲: 1
宴: 1
丹: 1
人: 2
樽: 1
儿: 1
我: 2
汉: 1
酌: 1
还: 1
回: 1
金: 3
散: 1
古: 2
材: 1
雪: 1
杯: 2
青: 1
使: 1
海: 1
白: 2
长: 1

    觉得很有意思,Mark一下!

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/83114062