今回は、PySparkについて詳しくご紹介します。
データは、情報技術やデジタル領域のあらゆる局面に燃料を供給する中核的なソースの1つです。
そのため、それを適切に利用するためには、いくつかの重要なポイントを知っておく必要があります。
現在、データは大量に入手可能です。
そして、このビッグデータを管理するためのソフトウェアツールキットが提供されています。
その1つがPysparkです。
PySparkは、Apache SparkのPythonライブラリであり、拡張機能です。
この記事もチェック:Pythonのデータ分析ライブラリのおススメを4つ紹介する
PySparkを使ったデータカラムの処理
この記事は、Apache SparkとPythonプログラミングについてある程度知っている人向けです。
PythonとPysparkを使ったデータ分析の知識は、このトピックを理解するために必須です。
準備万端であれば、さっそく始めましょう。
1. Pysparkのインストール
このセクションでは、Pysparkのインストールについて説明します。
コマンドプロンプトに移動し、環境変数のPATHにPythonが追加されていることを確認するだけです。
次に、以下のpipコマンドを入力します。
pip install pyspark |
import pyspark
import warnings
warnings.filterwarnings( 'ignore' )
from pyspark.sql import SparkSession
|
さて、フレームワークのインストールに成功したので、本題に入りましょう。
2. 環境の構築
スムーズなワークフローを実現するために、いくつかの前提条件があります。
以下はその内容です。
使用したツールやリソース
1
3. Pysparkでセッションを作成する
Pysparkのセッションは、ビッグデータ解析を行う際に最も重要な要素の1つです。
セッションは私たちのためにアプリケーションを作成し、私たちの活動のすべての記録と各チェックポイントを保持します。
セッションを作成するには、以下のコードを使用します。
コード
data = session.read.csv( 'salary.csv' )
data |
data.show() |
SQLモジュールのSparkSessionクラスは、セッションを作成するのに役立ちます。
このクラスのインスタンスとして、セッション変数を作成します。
そして、builderメソッドの属性appname()で、アプリケーションの名前を指定します。
そして、getOrCreate()メソッドで対話型アプリを作成します。
さて、これで強力な基礎ができたので、さらにデータセットを読み込むための方法を考えてみましょう。
この記事もチェック:Pythonでデータセットから別のデータセットへピボットテーブルを作成する
4. データセットの読み込み
データセットを読み込むとき、機械はそれをSQLテーブルの形で読み込む。
このテーブルのすべての列とセルは、デフォルトでは文字列として読み込まれる。
ここでは、Datasets フォルダにある salary.csv を読み込むことにします。
これは、データセットが置かれているパスです。
もしファイルがフォルダーの中にある場合は、フォルダーパスを指定するのが一番よい方法です。
以下はそのためのコードです。
data = session.read.option( 'header' , 'true' ).csv( 'Datasets/salary.csv' , inferSchema = True )
data |
data.columns data.select( 'Name' ).show()
|
まず、データセットを格納する変数 ‘data’ を作成します。
セッションの read 関数は、データセットを読み込むためのものです。
この関数には、さまざまな拡張子のファイルを読み込むためのサブ関数があります。
Pysparkで読み込めるファイルの種類は以下の通りです。
- csv
- フォーマット
- jdbc
- json
- オーク
- パーケット
- スキーマ
- テーブル
- テキスト
5. データセットの表示
データセットを読み込むときはシステムの中だけですが、それを表示するには show() というメソッドがあります。
データセットが大きすぎる場合は、このメソッドは最初の20行を表示するだけですが、10行や15行といった小さい場合は、テーブル全体が表示されます。
data.select( 'company' , 'job' ).show()
|
from pyspark.sql.functions import lit
# adding columns in dataframe data = data.withColumn( 'Tax Cutting' , lit( 0.1 ))
|
PySparkを用いた列変換
上の図では、テーブルの各要素をStringの形式で読み取っています。
そして、その数に応じて列の名前を付けています。
したがって、4つのカラムがある場合、0から3までのカラム番号が表示されます。
これが今回の記事の核心的なトピックになります。
では、さっそくやってみましょう。
基本的な操作として、データセットに対して次のような変換を行うことができます。
- 新しいカラムを作成する
- 特定の1つの列を選択する
- 複数のカラムを選択する
- カラムの追加
- 列の削除
- カラムの名前変更
Pysparkには同じことをする機能があるので、明示的に外部ライブラリを使用する必要はありません。
そのために、readメソッドのoption()属性でヘッダを表示するようにしています。
以下はそのためのコードです。
data = data.drop( "degree" )
data.show() |
option()属性は、データセットを適切なフォーマットで表示するためのものです。
inferschema パラメータを True にして、見出しを表示するようにします。
また、それぞれのデータ型に対応したカラムを読み込んでいます。
data = data.withColumnRenamed( 'job' , 'Designation' )
|
それでは、カラムに関する主なテクニックを見ていきましょう。
この記事もチェック:Linux Ubuntuで複数のファイルの名前を一括変更する
1. カラムを選択する
Pysparkでは、データセット内の特定のカラムを選択することは非常に簡単です。
select()関数はパラメータとしてカラムを受け取ります。
これは、出力に単一のカラムを返します。
また、利用可能なすべてのカラムを記録するために、columns属性を取ります。
これは、リストの形でそれらを返します。
この例では、データセットから ‘job’ カラムを選択することにします。
コード
結果は以下の通りです。
2. 複数のカラムの選択
複数の列の選択には、同じ select() 関数を使用します。
この関数は、複数のパラメータをカラムの形で受け取ることができます。
ここでは、データセットから ‘company’ と ‘job’ のカラムを選択します。
コード
結果は以下の通りです。
3.
4. カラムの削除
カラムの削除は、そのカラムのすべての内容を永久に削除することです。
Pysparkはこのために柔軟な機能を提供しています。
Pandasのように、drop()関数があります。
この関数にはパラメータとして削除したいカラムが渡されます。
ここでは、データセットから学位のカラムを削除してみます。
名前を適切に記述しないとエラーになります。
コード
結果は以下の通りです。
5. カラムの名前変更
カラムの名前を変更することは、カラムの主見出しやタイトルを変更することです。
これには、withColumnRenamed()関数を使用します。
この関数は、2つのパラメータを受け取ります。
- 既存のカラム名
- そのカラムに付けられる新しい名前。
この関数を理解するために、ここでは Job カラムの名前を Designation に変更します。
上記のコードでは、jobはデータフレーム内の既存のカラム名で、Designationはそのカラムに付ける新しい名前です。
まとめ
ここで記事は終了です。
Pysparkの列変換の基本について、すべて見てきました。
新しいカラムの作成、削除、名前の変更など、さまざまな修正を行うことができます。
これが、このライブラリを使い始めるための基本的な道のりです。
今後の勉強のために頑張ってください。