欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyCharm搭建Spark開發(fā)環(huán)境實(shí)現(xiàn)第一個(gè)pyspark程序

 更新時(shí)間:2019年06月13日 16:08:23   作者:-趕鴨子上架-  
這篇文章主要介紹了PyCharm搭建Spark開發(fā)環(huán)境實(shí)現(xiàn)第一個(gè)pyspark程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一, PyCharm搭建Spark開發(fā)環(huán)境

Windows7, Java1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop2.7.6

通常情況下,Spark開發(fā)是基于Linux集群的,但這里作為初學(xué)者并且囊中羞澀,還是在windows環(huán)境下先學(xué)習(xí)吧。

參照這個(gè)配置本地的Spark環(huán)境。

之后就是配置PyCharm用來開發(fā)Spark。本人在這里浪費(fèi)了不少時(shí)間,因?yàn)榘俣瘸鰜淼臒o非就以下兩種方式:

1.在程序中設(shè)置環(huán)境變量

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中添加環(huán)境變量

不過還是沒有解決程序中代碼自動(dòng)補(bǔ)全。

想了半天,觀察到spark提供的pyspark很像單獨(dú)的安裝包,應(yīng)該可以考慮將pyspark包放到python的安裝目錄下,這樣也就自動(dòng)添加到之前所設(shè)置的pythonpath里了,應(yīng)該就能實(shí)現(xiàn)pyspark的代碼補(bǔ)全提示。

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

最后,實(shí)現(xiàn)了pyspark代碼補(bǔ)全功能。

二.第一個(gè)pyspark程序

作為小白,只能先簡(jiǎn)單用下python+pyspark了。

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

需求:根據(jù)歷史數(shù)據(jù)統(tǒng)計(jì)出每個(gè)月平均指標(biāo)值

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統(tǒng)計(jì)')
 m_index = 1
 for data in pm10_months:
  print(str(m_index).zfill(2) + '月份: ' + '||' * round(data))
  m_index += 1

運(yùn)行結(jié)果:

- 2017年,每月平均PM10統(tǒng)計(jì)
01月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
02月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
04月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
06月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
07月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
08月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
09月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12月份: ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

由以上統(tǒng)計(jì)結(jié)果,可以看出4月份的PM10最低。

Done!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中enumerate函數(shù)用法實(shí)例分析

    python中enumerate函數(shù)用法實(shí)例分析

    這篇文章主要介紹了python中enumerate函數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了enumerate函數(shù)的功能、定義及使用技巧,需要的朋友可以參考下
    2015-05-05
  • python 字符串格式化的示例

    python 字符串格式化的示例

    這篇文章主要介紹了python 字符串格式化的示例,幫助大家更好的理解和使用python處理字符串,感興趣的朋友可以了解下
    2020-09-09
  • Python獲取一個(gè)用戶名的組ID過程解析

    Python獲取一個(gè)用戶名的組ID過程解析

    這篇文章主要介紹了Python獲取一個(gè)用戶名的組ID過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python tkinter和exe打包的方法

    Python tkinter和exe打包的方法

    這篇文章主要介紹了Python tkinter和exe打包的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • qpython3 讀取安卓lastpass Cookies

    qpython3 讀取安卓lastpass Cookies

    這篇文章主要介紹了qpython3 讀取安卓lastpass Cookies的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    讀萬卷書不如行萬里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶用python來做幾個(gè)整蠱的小程序,大家可以在過程中查缺補(bǔ)漏,看看自己掌握程度怎么樣,發(fā)給朋友加固一下友誼
    2021-10-10
  • python 統(tǒng)計(jì)一個(gè)列表當(dāng)中的每一個(gè)元素出現(xiàn)了多少次的方法

    python 統(tǒng)計(jì)一個(gè)列表當(dāng)中的每一個(gè)元素出現(xiàn)了多少次的方法

    今天小編就為大家分享一篇python 統(tǒng)計(jì)一個(gè)列表當(dāng)中的每一個(gè)元素出現(xiàn)了多少次的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python基于回溯法子集樹模板解決旅行商問題(TSP)實(shí)例

    Python基于回溯法子集樹模板解決旅行商問題(TSP)實(shí)例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決旅行商問題(TSP),簡(jiǎn)單描述了旅行商問題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹模板解決旅行商問題的相關(guān)實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解

    Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解

    這篇文章主要為大家詳細(xì)介紹了Python在繪圖時(shí)如何實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • 關(guān)于pyqt5彈出提示框的詳細(xì)介紹

    關(guān)于pyqt5彈出提示框的詳細(xì)介紹

    在實(shí)際的程序開發(fā)中經(jīng)常會(huì)用到各種各樣的消息框來給用戶一些提示或提醒,下面這篇文章主要給大家介紹了關(guān)于pyqt5彈出提示框的詳細(xì)介紹,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08

最新評(píng)論