Skip to content
アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

Sparkクラスターでの特徴量探索SQLの使用

GitHubでこのAIアクセラレーターにアクセス

このアクセラレーターでは、DockerベースのSparkクラスターで特徴量探索SQLを実行する例を概説します。 DockerでSparkクラスターを設定し、カスタムユーザー定義関数(UDF)を登録し、複数のデータセットで特徴量エンジニアリングのための複雑なSQLクエリーを実行するプロセスについて説明します。 同じアプローチは、GCP Dataproc、Amazon EMR、Cloudera CDPなどの他のSpark環境にも適用でき、さまざまなSparkプラットフォーム上で特徴量探索を実行する柔軟性を提供します。

問題のフレーミング

特徴量は通常、複数のデータアセットに分散しています。 これらのデータアセットをまとめるには、それらを結合してから、さらに機械学習モデルを実行するので、多くの作業が必要となります。 データセットの粒度が異なる場合、データを適切に結合するには集約処理が必要になるため、さらに困難です。

特徴量探索では、データセットを結合および集計する手順を自動化することで、この問題を解決します。 データセットの結合方法を定義した後、特徴量の生成とモデリングをDataRobotに任せます。

特徴量探索はSparkを使用して結合と集約を実行し、プロセスの最後にSpark SQLを生成します。 場合によっては、より大規模なデータセットを柔軟かつスケーラブルに処理するために、Spark SQLを他のSparkクラスターで実行する場合があります。この方法では、データを直接DataRobot環境に読み込む必要がなくなります。 このアプローチでは、よりリソース集約的なタスクのために外部のSparkクラスターを活用することができます。

このアクセラレーターでは、DockerベースのSparkクラスターで特徴量探索SQLを実行する例を提供します。

前提条件

  • Dockerをインストールする
  • Docker composeをインストールする
  • 必要なデータセット、UDFs .jar、および環境ファイル(オプション)をダウンロードする

互換性

  • 特徴量探索SQLは、Spark 3.2(.2)、Spark 3.4(.1)、およびScala 2.12(.15)と互換性があります。 異なるSparkバージョンとScalaバージョンを使用すると、エラーが発生する可能性があります。
  • UDFs .jarおよび環境ファイルは、以下の場所から取得できます。 環境ファイルは、日本語テキストを扱う場合にのみ必要となります。
  • Spark 3.2.2
  • Spark 3.4.1
  • 具体的なSparkのバージョンは、 こちらから入手できます。

ファイル概要

ファイル構造の概要は以下の通りです。

.
├── Using Feature Discovery SQL in other Spark clusters.ipynb
├── apps
│    ├── DataRobotRunSSSQL.py
│    ├── LC_FD_SQL.sql
│    ├── LC_profile.csv
│    ├── LC_train.csv
│    └── LC_transactions.csv
├── data
├── libs
│    ├── spark-udf-assembly-0.1.0.jar
│    └── venv.tar.gz
├── docker-compose.yml
├── Dockerfile
├── start-spark.sh
└── utils.py 
  • Using Feature Discovery SQL in other Spark clusters.ipynbは、Docker上の新しいSparkクラスターで特徴量探索SQLを実行するためのフレームワークを提供するノートブックです。
  • docker-compose.ymlstart-spark.shDockerfileは、SparkでDockerコンテナを構築して起動するためにDockerが使用するファイルです。
  • utils.pyには、データセットとUDFs jarをダウンロードするためのヘルパー関数が含まれています。
  • appディレクトリには以下が含まれます。
  • Spark SQL(.sql拡張子付きのファイル)
  • データセット(.csv拡張子付きのファイル)
  • SQLを解析して実行するヘルパー関数(.py拡張子付きのファイル)
  • libsディレクトリには以下が含まれます。
  • ユーザー定義関数(UDF)JARファイル
  • 環境ファイル(データセットに日本語のテキストが含まれている場合にのみ必要で、Mecabトークナイザーで処理する必要があります)
  • 出力結果の保存に使用されるため、dataディレクトリは空です。

  • データセット、UDFs jar、環境ファイルは、初期状態では利用できないことに注意してください。 アクセラレーターで説明されているように、それらはダウンロードする必要があります。