pyspark Python プログラミング

【Python】Pysparkでデータフレームの列データをプロットする

この記事は約2分で読めます。

 

今回はPysparkのデータフレームの数値をMatplotlibで可視化する方法を紹介したいと思います。

 

データの読み込み

 

環境はGooglecolabratoryを想定しています。

読み込むCSVはGooglecolabratoryのノートブックのノード内でデフォルトで配置されている

カリフォルニアの住宅情報のcsvになります。

 

#csvファイル読み込み
from pyspark.sql import SparkSession

filename = '/content/sample_data/california_housing_test.csv'
spark = SparkSession.builder \
.master("local") \
.appName("app") \
.getOrCreate()
data = spark.read.csv(filename, header=True, inferSchema=True, sep=',')
data.show()

 

グラフをプロットする

 

import matplotlib.pyplot as plt

x_ts = range(len( y_ans_val))
y_ans_val = [val['longitude'] for val in data.select('longitude').collect()]

plt.plot(x_ts, y_ans_val)

plt.ylabel('longitude')

plt.title('test plot')

 

流れとしてはsparkデータフレーム列をリストに変換し、それをmatplotlibでプロット対象に指定しています。

 

余談

 

一応データ数的に少量のものであれば、.toPandas()でsparkのデータフレームをpandasのデータフレームに変換してプロットするのもアリだと思います。

 

# sparkデータフレームをpandasデータフレームに変換する
df = data.toPandas()

 

 

 

参照:https://stackoverflow.com/questions/52938842/how-to-plot-using-pyspark

コメント

タイトルとURLをコピーしました