PyCharm搭建Spark開發環境 + 第一個pyspark程序

一, PyCharm搭建Spark開發環境python

Windows7, Java 1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop 2.7.6sql

一般狀況下,Spark開發是基於Linux集羣的,但這裏做爲初學者而且囊中羞澀,仍是在windows環境下先學習吧。windows

參照這個配置本地的Spark環境。app

以後就是配置PyCharm用來開發Spark。本人在這裏浪費了很多時間,由於百度出來的無非就如下兩種方式:ide

1. 在程序中設置環境變量oop

import os
import sys

os.environ['SPARK_HOME'] = 'C:\xxx\spark-2.2.1-bin-hadoop2.7'
sys.path.append('C:\xxx\spark-2.2.1-bin-hadoop2.7\python')

2. 在Edit Configuration中添加環境變量學習

 

不過仍是沒有解決程序中代碼自動補全。ui

想了半天,觀察到spark提供的pyspark很像單獨的安裝包,應該能夠考慮將pyspark包放到python的安裝目錄下,這樣也就自動添加到以前所設置的python path裏了,應該就能實現pyspark的代碼補全提示。spa

將spark下的pyspark包放到python路徑下(注意,不是spark下的python!).net

   

最後,實現了pyspark代碼補全功能。

 

二. 第一個pyspark程序

做爲小白,只能先簡單用下python+pyspark了。

數據: Air Quality in Madrid (2001-2018)

需求: 根據歷史數據統計出每一個月平均指標值

import os
import re
from pyspark.sql import SparkSession

if __name__ == "__main__":

    spark = SparkSession.builder.getOrCreate()
    df_array = []
    years = []
    air_quality_data_folder = "C:/xxx/spark/air-quality-madrid/csvs_per_year"
    for file in os.listdir(air_quality_data_folder):
        if '2018' not in file:
            year = re.findall("\d{4}", file)
            years.append(year[0])
            file_path = os.path.join(air_quality_data_folder, file)
            df = spark.read.csv(file_path, header="true")
            # print(df.columns)
            df1 = df.withColumn('yyyymm', df['date'].substr(0, 7))
            df_final = df1.filter(df1['yyyymm'].substr(0, 4) == year[0]).groupBy(df1['yyyymm']).agg({'PM10': 'avg'})
            df_array.append(df_final)

    pm10_months = [0] * 12
    # print(range(12))
    for df in df_array:
        for i in range(12):
            rows = df.filter(df['yyyymm'].contains('-'+str(i+1).zfill(2))).first()
            # print(rows[1])
            pm10_months[i] += (rows[1]/12)

    years.sort()
    print(years[0] + ' - ' + years[len(years)-1] + '年,每個月平均PM10統計')
    m_index = 1
    for data in pm10_months:
        print(str(m_index).zfill(2) + '月份: ' + '||' * round(data))
        m_index += 1

運行結果:

2001 - 2017年,每個月平均PM10統計
01月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
02月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
04月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
06月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
07月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
08月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
09月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

由以上統計結果,能夠看出4月份的PM10最低。

Done!

相關文章
相關標籤/搜索