以前GoogleColabでのPySpark環境構築の方法をまとめたのですが、最近(v3.x.x以降?)はもっと楽にインストールできるっぽいです。ってことで、手順を更新します。
前回の↓
早速ですが、以下notebook上での処理手順
1. Sparkモジュールをマジックコマンドでインストールします
前回に比べるとめっちゃシンプル、、、
!pip install pyspark
Collecting pyspark Downloading pyspark-3.2.1.tar.gz (281.4 MB) |████████████████████████████████| 281.4 MB 32 kB/s Collecting py4j==0.10.9.3 Downloading py4j-0.10.9.3-py2.py3-none-any.whl (198 kB) |████████████████████████████████| 198 kB 44.3 MB/s Building wheels for collected packages: pyspark Building wheel for pyspark (setup.py) ... done Created wheel for pyspark: filename=pyspark-3.2.1-py2.py3-none-any.whl size=281853642 sha256=2407f69057d0e045fa99a817fe2a924a927feb5dafcc8e663201e5138c1fafca Stored in directory: /root/.cache/pip/wheels/9f/f5/07/7cd8017084dce4e93e84e92efd1e1d5334db05f2e83bcef74f Successfully built pyspark Installing collected packages: py4j, pyspark Successfully installed py4j-0.10.9.3 pyspark-3.2.1
2. 必要なモジュールをインポートします
"SparkSession - in-memory"以下の出力が得られれば、とりあえずOKらしい。
import pyspark # SparkContext from pyspark import SparkConf, SparkContext conf = SparkConf().setMaster("local").setAppName("My App") sc = SparkContext(conf=conf) # SparkSession from pyspark.sql import SparkSession spark = SparkSession.builder.getOrCreate() spark
SparkSession - in-memory SparkContext Spark UI Version v3.2.1 Master local AppName My App
3. 動作確認してみます
使うモジュールをインポートしておきます。 なんかワーニング出てるけどいったんスルー。
from pyspark.sql import SQLContext sqlContext = SQLContext(sc) from pyspark.sql import functions as fn
/usr/local/lib/python3.7/dist-packages/pyspark/sql/context.py:79: FutureWarning: Deprecated in 3.0.0. Use SparkSession.builder.getOrCreate() instead. FutureWarning
ど定番のタイタニック生存データをPandasで読み込んで、データの一部をSparkのDataframeに変換してみます。
import pandas as pd import numpy as np # テストデータの読み込み input_data = "/titanic/train.csv" pdf_input = pd.read_csv(input_data) # テストデータをSpark DataFrameに変換 sdf_input = sqlContext.createDataFrame(pdf_input[["PassengerId","Name","Fare"]]) sdf_input.show(5)
+-----------+--------------------+-------+ |PassengerId| Name| Fare| +-----------+--------------------+-------+ | 1|Braund, Mr. Owen ...| 7.25| | 2|Cumings, Mrs. Joh...|71.2833| | 3|Heikkinen, Miss. ...| 7.925| | 4|Futrelle, Mrs. Ja...| 53.1| | 5|Allen, Mr. Willia...| 8.05| +-----------+--------------------+-------+ only showing top 5 rows
ちゃんと使えました。
おわりに
途中で警告でてるけど、まぁ動いているからヨシ!(仮)