Python

PySparkでCSVファイルの読み込み

こんにちわ!

今回の記事ではPySparkでCSVファイルを読み込む方法を紹介したいと思います。

みんな大好きPandasではread_csvで読み込むことができますが、PySparkでも似たような感じで簡単にCSVファイルを読み込み、Spark DataFrameに格納することができます。

読み込み方法としてはスキーマを指定して読み込む方法と、スキーマは自動で推定してもらう方法の大きく2種類があると思いますので、それぞれの方法でデータを読みこんでみます。

では始めましょう!

参考にしたのはこちらです。
Applied Data Science Using PySpark

日本語だとこちら。
入門PySpark

 

read csvでスキーマ指定せず読み込む

まずはスキーマを指定せずに読みこんでみます。

試しに読み込むデータはbankデータにしてみます。

bankデータに興味がある方は、こちらを見てみてくださいね。

https://archive.ics.uci.edu/ml/datasets/bank+marketing

こちらはUCIのWEBサイトですが、kaggleからもダウンロードすることができるようです。

さて、まずはSparkSessionをimportしてSparkSessionを立ち上げます。

 

 

これでSparkSessionを立ち上げられたので、このあとは下のコードのようにspark.read.csvとして、ファイル名やヘッダー情報などを入力し、"inferSchema=True"としてやるだけです。

とても簡単ですね。

 

 

 

これで結果をSpark DataFrameに格納することができて、show()してみるとこのようにちゃんと読み込めていることがわかるかと思います。

 

 

ちなみにdtypesするとこのようにいい感じに自動でスキーマを推測してくれていることがわかるかと思います。

厳密にやりたい場合はこれからやる方法で、読み込み時にスキーマ指定をしておいた方が良いかと思いますが、それほどこだわりがないのであれば、このように自動でスキーマを決めてもらっても大丈夫ではないでしょうか。

 

CSVファイル読み込み時にスキーマを指定する方法

では、CSVファイルを読み込むときに、スキーマも指定する方法を紹介しておきます。

自動でスキーマを決めるときは"inferSchema=True"にしましたが、手動でスキーマを指定する場合は"inferSchema=False"にし、schemaを手動で設定していきます。

こちらのデータはOnline Retailのデータにし、スキーマは適当にString, Integer, Date, Floatなどそれぞれ個別にStructFeildで指定していきます。

 

 

スキーマ情報をschemaという変数に入れたので、こちらを使ってreadしてみます。

今度はread.formatでCSVを指定し、loadの中でschemaを先ほど作成したschema変数を指定します。

 

 

 

これでCSVファイルのデータ読み込みが完了し、Spark DataFrameに格納できています。

一応中身とスキーマを確認してみましょう。

 

 

はい、このようにちゃんとスキーマの指定通りになっていますね!

こんな感じでスキーマを指定するパターンとしないパターンで読み込むことができました!

データサイエンティストとして3年間で3社経験した僕の転職体験談まとめ

こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...

 

PySparkの勉強法

もしPySparkをちゃんと学びたい方はUdemyのコースがおすすめです。日本語の書籍は古いやつしかないからです。。。

【Udemy】PySparkによる大規模データ処理手法と機械学習

英語でもよい方は英語のこのあたりがわかりやすいです。

おすすめ記事

1

こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...

2

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

3

こんにちわ、サトシです。 今回は、企業でデータサイエンティストとして働いていた僕が、フリーランスとしてどのような手順で独立していったかについて書いていきたいと思います。 僕はSIer SE→博士過程→ ...

-Python

Copyright© さとぶろぐ , 2024 All Rights Reserved Powered by AFFINGER5.