Windows下PySpark 環境搭建篇以及詞頻統計(1)

Windows下pyspark環境搭建以及使用結巴分詞進行詞頻統計

1. 環境搭建

環境搭建的教程已經有很多人寫了,我就不多寫了, 大家自行百度(推薦在Windows下面安裝2.3.1版本的pyspark也是這個版本,避免後面踩坑https://github.com/apache/spark/pull/23055)

  1. 這裏下載spark的軟件包放到任意目錄,解壓後路徑避免空格,然後將bin路徑加入到環境變量path中
  2. Windows的話,需要下載一個winutil.exe,解壓後將bin路徑加入到path中,然後將bin下面的wintuils.exe複製到剛纔解壓的spark的bin下面
  3. 打開終端執行:
pip install pyspark==2.3.2

搞完了執行pyspark會出現下面這個界面:
在這裏插入圖片描述
注意是沒有任何報錯的哦

配置pycharm

下面主要記錄一下使用pycharm編寫的時候的一些配置:

    1. 在Edit Configure中得Environment variables中添加下面添加SPARK_HOME 和PYTHONPATH兩個變量:
PYTHONPATH:{你的spark安裝目錄下的pyhon目錄的絕對路徑}, 例如:D:\soft\spark\python
SPARK_HOME:{你安裝的spark路徑}例如:D:\soft\spark

2. 詞頻統計

先上代碼

# -*- coding: utf-8 -*-

"""
 pyspark from doc test
 @Time    : 2019/2/18 10:00
 @Author  : MaCan ([email protected])
 @File    : p_doc.py
"""
import jieba

from pyspark.sql import SparkSession, Row
# from pyspark.sql.types import StringType, IntegerType
from pyspark import SparkConf


def split(line):
    # print('line', line)
    word_list = jieba.cut(line)  # 進行中文分詞
    return word_list


def load_and_seg(spark):
    data = spark.read.text('C:\\dataset\\a.txt')
    data.show()
    seg = data.rdd.flatMap(lambda x: split(x[0]))
    return seg


def word_count(spark, data):
    data = data.map(lambda word: (word, 1)).reduceByKey(lambda x, y: x + y)
    return data


if __name__ == '__main__':
    jieba.cut('')
    conf = SparkConf()
    spark = SparkSession \
        .builder \
        .appName('example') \
        .master('local[*]') \
        .config(conf=conf) \
        .getOrCreate()

    seg = load_and_seg(spark)
    tt = seg.collect()
    print(tt)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章