您好,登錄后才能下訂單哦!
一, PyCharm搭建Spark開發環境
Windows7, Java1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop2.7.6
通常情況下,Spark開發是基于Linux集群的,但這里作為初學者并且囊中羞澀,還是在windows環境下先學習吧。
參照這個配置本地的Spark環境。
之后就是配置PyCharm用來開發Spark。本人在這里浪費了不少時間,因為百度出來的無非就以下兩種方式:
1.在程序中設置環境變量
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中添加環境變量
不過還是沒有解決程序中代碼自動補全。
想了半天,觀察到spark提供的pyspark很像單獨的安裝包,應該可以考慮將pyspark包放到python的安裝目錄下,這樣也就自動添加到之前所設置的pythonpath里了,應該就能實現pyspark的代碼補全提示。
將spark下的pyspark包放到python路徑下(注意,不是spark下的python!)
最后,實現了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
運行結果:
- 2017年,每月平均PM10統計 01月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 02月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 03月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 04月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 05月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 06月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 07月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 08月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 09月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 10月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 11月份: |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 12月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
由以上統計結果,可以看出4月份的PM10最低。
Done!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。