# Sparkでの特徴量探索のSQL

> Sparkでの特徴量探索のSQL - DockerでSparkクラスターを設定し、カスタムユーザー定義関数（UDF）を登録し、複数のデータセットで複雑なSQLクエリーを実行することで、Docker上の
> 新しいSparkクラスターで特徴量探索SQLを実行します。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-27T18:44:30.222262+00:00` (UTC).

## Primary page

- [Sparkでの特徴量探索のSQL](https://docs.datarobot.com/ja/docs/api/dev-learning/accelerators/ai-integrations-platforms/fd-sql-spark.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [問題のフレーミング](https://docs.datarobot.com/ja/docs/api/dev-learning/accelerators/ai-integrations-platforms/fd-sql-spark.html.md#_1): In-page section heading.
- [前提条件](https://docs.datarobot.com/ja/docs/api/dev-learning/accelerators/ai-integrations-platforms/fd-sql-spark.html.md#_2): In-page section heading.
- [互換性](https://docs.datarobot.com/ja/docs/api/dev-learning/accelerators/ai-integrations-platforms/fd-sql-spark.html.md#compatibility): In-page section heading.
- [ファイル概要](https://docs.datarobot.com/ja/docs/api/dev-learning/accelerators/ai-integrations-platforms/fd-sql-spark.html.md#file-overview): In-page section heading.

## Documentation content

[GitHubでこのAIアクセラレーターにアクセス](https://github.com/datarobot-community/ai-accelerators/tree/main/advanced_ml_and_api_approaches/Using%20Feature%20Discovery%20SQL%20in%20Spark%20clusters)

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

## 問題のフレーミング

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

[特徴量探索](https://docs.datarobot.com/ja/docs/classic-ui/data/transform-data/feature-discovery/enrich-data-using-feature-discovery.html.md) では、データセットを結合および集計する手順を自動化することで、この問題を解決します。 データセットの結合方法を定義した後、特徴量の生成とモデリングを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.yml 、 start-spark.sh 、 Dockerfile は、SparkでDockerコンテナを構築して起動するためにDockerが使用するファイルです。
- utils.py には、データセットとUDFs jarをダウンロードするためのヘルパー関数が含まれています。
- app ディレクトリには以下が含まれます。
- Spark SQL（ .sql 拡張子付きのファイル）
- データセット（ .csv 拡張子付きのファイル）
- SQLを解析して実行するヘルパー関数（ .py 拡張子付きのファイル）
- libs ディレクトリには以下が含まれます。
- ユーザー定義関数（UDF）JARファイル
- 環境ファイル（データセットに日本語のテキストが含まれている場合にのみ必要で、Mecabトークナイザーで処理する必要があります）
- 出力結果の保存に使用されるため、dataディレクトリは空です。
- データセット、UDFs jar、環境ファイルは、初期状態では利用できないことに注意してください。 アクセラレーターで説明されているように、それらはダウンロードする必要があります。
