我們從學習一門新語言如C、Java、Python等基本都是從"Hello World"開始的,而這裏的WordCount類似於"Hello World",該實例的功能是統計各個單詞出現的次數,比如隨意給你一份政府報告找出政府工作重點內容,那麼就可以通過單詞統計來完成,排除掉那些語氣詞(啊、的、是等等)出現詞的頻率越高代表着政府越重視。
本文是基於Pyhon的Spark Local來進行,因此需要準備以下環境:
Python3+
Pycharm
pyspark 2.3.3
安裝pyspark
pip install pyspark==2.3.3
數據準備
cat /home/llh/data/word.txt
spark hadoop hadoop
hbase hive hbase
kafka
代碼的編寫
from pyspark.sql import SparkSession
if __name__ == "__main__":
spark = SparkSession\
.builder\
.appName("PythonWordCount")\
.master("local[*]")\
.getOrCreate()
lines = spark.read.text("/home/llh/data/word.txt").rdd.map(lambda r: r[0])
counts = lines.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(lambda x, y: x + y)
output = counts.collect()
for (word, count) in output:
print("%s: %i" % (word, count))
spark.stop()
打印結果
spark: 1
hadoop: 2
hbase: 2
hive: 1
kafka: 1
知識點:
1. 如何安裝python的包,使用pip install xxx
2. 如何代碼創建Spark的初始化環境
3. 如何讀取普通TXT文件並進行轉換
Spark學習目錄:
- Spark學習實例1(Python):單詞統計 Word Count
- Spark學習實例2(Python):加載數據源Load Data Source
- Spark學習實例3(Python):保存數據Save Data
- Spark學習實例4(Python):RDD轉換 Transformations
- Spark學習實例5(Python):RDD執行 Actions
- Spark學習實例6(Python):共享變量Shared Variables
- Spark學習實例7(Python):RDD、DataFrame、DataSet相互轉換
- Spark學習實例8(Python):輸入源實時處理 Input Sources Streaming
- Spark學習實例9(Python):窗口操作 Window Operations