【分散処理】PySpark ~ 環境構築編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/09/18/214814

で、Windows環境でSparkを設定したが、
今回は、その続きで、PySparkの環境設定を行う

目次

【1】前提条件
【2】設定環境
【3】PySparkの設定
【4】サンプル
 1)動作確認用・Hello world
【5】その他トラブル

【1】前提条件

1)Pythonがインストールされていること
2)Sparkがインストールされていること
[オプション] 統合開発環境:VS Codeをインストールする

1)Pythonがインストールされていること

* 以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2014/08/07/231242
2)Sparkがインストールされていること

* 以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2019/09/18/214814

[オプション] 統合開発環境VS Codeをインストールする

* 以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2019/10/20/230323

【2】設定環境

* OS : Windows10
* Java : JDK13
* Spark : v2.4.4
* Python : Python 3.7.4
* 統合開発環境:VS Code

【3】PySparkの設定

# VS Codeで、以下のコマンドを行う
# 場合によっては、この前に「pip install pypandoc」を行う必要があるかも
pip install pyspark

補足: LinuxUbuntu)でのインストール

# pip のインストール
sudo apt install python-pip python3-pip

# PySparkのインストール
pip install pyspark

【4】サンプル

1)動作確認用・Hello world

from pyspark import SparkContext
from pyspark.sql import SparkSession


def main():
  spark_context = SparkContext()
  spark = SparkSession(spark_context)

  data_frame = spark.sql('SELECT "Hello, World!!!" AS message')
  data_frame.show()


if __name__ == '__main__':
  main()

出力結果

+---------------+
|        message|
+---------------+
|Hello, World!!!|
+-------------+

【5】その他トラブル

* 以下の関連記事を参照のこと。

PySpark 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/03/30/000000

参考文献

https://blog.amedama.jp/entry/2018/03/17/113516

関連記事

PySpark ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/04/03/004254
PySpark ~ RDD / 基本編 ~
https://dk521123.hatenablog.com/entry/2021/04/04/111057
PySpark ~ RDD / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2021/04/06/001709
PySpark ~ RDD <=> DataFrame の相互変換 ~
https://dk521123.hatenablog.com/entry/2021/05/19/143043
PySpark ~ DataFrame / データ操作編 ~
https://dk521123.hatenablog.com/entry/2020/01/04/150942
PySpark ~ DataFrame / データ集計編 ~
https://dk521123.hatenablog.com/entry/2021/05/25/111051
PySpark ~ DataFrame / テーブル・項目操作編 ~
https://dk521123.hatenablog.com/entry/2020/05/18/154829
PySpark ~ DataFrame / 項目数を取得するには ~
https://dk521123.hatenablog.com/entry/2020/08/28/183706
PySpark ~ DataFrame / show() 編 ~
https://dk521123.hatenablog.com/entry/2021/04/26/161342
PySpark ~ DB・テーブル・項目取得編 ~
https://dk521123.hatenablog.com/entry/2021/05/24/144317
PySpark ~ CSV / 基本編 ~
https://dk521123.hatenablog.com/entry/2019/11/24/225534
PySpark ~ CSV / Read/Writeのプロパティ ~
https://dk521123.hatenablog.com/entry/2020/07/30/195226
PySpark ~ CSV / White Spaceの扱い ~
https://dk521123.hatenablog.com/entry/2021/04/29/075903
PySpark ~ CSV / Null・空文字・異常値の扱い ~
https://dk521123.hatenablog.com/entry/2021/06/01/142457
PySpark ~ CSV / escape ~
https://dk521123.hatenablog.com/entry/2020/11/23/224349
PySpark ~ 出力ファイル / 空ファイル対応, 1ファイルに纏める ~
https://dk521123.hatenablog.com/entry/2021/04/03/004254
PySpark ~ エスケープされた区切り文字が含んだデータを扱う ~
https://dk521123.hatenablog.com/entry/2020/07/09/000832
PySpark ~ Parquet / 基本編 ~
https://dk521123.hatenablog.com/entry/2021/04/11/101305
PySpark ~ パーティション
https://dk521123.hatenablog.com/entry/2021/05/13/110811
PySpark ~ Hive ~
https://dk521123.hatenablog.com/entry/2020/05/14/222415
PySpark ~ ユーザ定義関数 UDF 編 ~
https://dk521123.hatenablog.com/entry/2020/05/20/195621
PySpark ~ UDFの各定義方法でのサンプル ~
https://dk521123.hatenablog.com/entry/2021/05/27/100132
PySpark ~ UDF の使用上の注意 ~
https://dk521123.hatenablog.com/entry/2021/05/20/095706
PySpark ~ データをクリーニングする ~
https://dk521123.hatenablog.com/entry/2020/07/08/162552
PySparkで入力ファイル名を取得するには
https://dk521123.hatenablog.com/entry/2021/04/12/145133
PySpark ~ PySpark経由でDBに接続する ~
https://dk521123.hatenablog.com/entry/2020/07/02/000000
PySpark で 出力ファイル名を変更する
https://dk521123.hatenablog.com/entry/2021/05/12/003047
PySpark でエラー「Exception: It appears ...」が表示された
https://dk521123.hatenablog.com/entry/2020/07/10/192404
Apache Spark ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/09/18/214814
Apache Spark ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/09/14/123206
Visual Studio Code ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/20/230323
PySpark 環境構築時のトラブルシューティング
https://dk521123.hatenablog.com/entry/2021/03/30/000000
PySpark でエラー「Total size ... is bigger than spark.driver.maxResultSize」が発生する
https://dk521123.hatenablog.com/entry/2021/04/22/131849
AWS Glue上で エラー「Dynamic partition strict mode requires ...」が発生する
https://dk521123.hatenablog.com/entry/2021/05/17/120443