使用pyspark开发一个WordCount程序

2019-03-24  本文已影响0人  MayerBin

更多内容请关注我的个人博客:

因为课程原因,小屁孩我python基础还没学完,就被要求用pyspark开发一个WordCount程序了,在这里算是坐下笔记,也算是扫盲贴吧

import xx 和 from xx import xx 的区别

import xx
图片来自菜鸟教程

image.png

import xx from xx
图片来自菜鸟教程

image.png

通俗地来讲就是: * 我要书包 用import bag
我要书包里面的书 用from bag import book

词频统计

>>> textFile = sc.textFile("file:///usr/local/spark/mycode/wordcount/word.txt")
>>> wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word,1)).reduceByKey(lambda a, b : a + b)
>>> wordCount.collect()

map( ):接收一个函数,应用到RDD中的每个元素,然后为每一条输入返回一个对象。
flatMap( ):接收一个函数,应用到RDD中的每个元素,返回一个包含可迭代的类型(如list等)的RDD,可以理解为先Map(),后flat().

image.png

使用Pycharm开发Python版本的WordCount

from pyspark import SparkConf, SparkContext

# 创建SparkContext
conf = SparkConf().setAppName("WordCount").setMaster("local")
sc = SparkContext(conf=conf)

inputFile = "hdfs://192.168.127.128:8020/input/data.txt"  #sys.argv[1]
textFile = sc.textFile(inputFile)
wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda x, y: x + y)
wordCount.foreach(print)

创建SparkContext的另一种方法
spark = SparkSession.builder.appName("WordCount").getOrCreate()
sc = spark.sparkContext

上一篇 下一篇

猜你喜欢

热点阅读