スコアリングコード用のApache Spark API¶
スコアリングコード用のSpark APIライブラリは、DataRobotのスコアリングコードJARをSparkクラスターに統合します。 これは、 PySpark APIおよび Spark Scala APIとして使用できます。
以前のバージョンでは、スコアリングコード用のSpark APIは、複数のライブラリで構成され、それぞれが特異なSparkバージョンをサポートしていました。 現在、1つのライブラリにより、サポート済みのすべてのSparkバージョンをサポートしています。 以下のSparkバージョンはこの機能をサポートしています。
- Spark 2.4.1以降
- Spark 3.x
重要
Sparkは、Scala 2.12用にコンパイルする必要があります。
使用非推奨Sparkバージョン固有のライブラリのリストについては、 Deprecated Sparkライブラリのセクションを参照してください。
PySpark API¶
スコアリングコード用のPySpark APIは、PyPIでリリースされた datarobot-predict
Pythonパッケージに含まれています。 PyPIプロジェクトの説明には、ドキュメントと使用例が含まれています。
Spark Scala API¶
スコアリングコード用のSpark Scala APIは、 scoring-code-spark-api
としてMavenに公開されています。 詳細については、 APIリファレンスのドキュメントを参照してください。
Spark APIを使用する前に、SparkクラスパスにSpark APIを追加する必要があります。 spark-shell
の場合、--packages
パラメーターを使用して、以下のように、Mavenから直接依存関係をロードします。
spark-shell --conf "spark.driver.memory=2g" \
--packages com.datarobot:scoring-code-spark-api:VERSION \
--jars model.jar
CSVファイルのスコアリング¶
以下の例では、CSVファイルをSpark DataFrameにロードして、スコアリングする方法を示しています。
import com.datarobot.prediction.sparkapi.Predictors
val inputDf = spark.read.option("header", true).csv("input_data.csv")
val model = Predictors.getPredictor()
val output = model.transform(inputDf)
output.show()
ランタイムでのモデルのロード¶
以下の例では、spark-shell--jars
パラメーターを使用する代わりに、実行時にモデルのJARファイルをロードする方法を示しています。
PROJECT_ID
、MODEL_ID
、およびAPI_TOKEN
を定義します。
val model = Predictors.getPredictorFromServer(
"https://app.datarobot.com/projects/PROJECT_ID/models/MODEL_ID/blueprint","API_TOKEN")
モデルJARファイルおよびMODEL_ID
へのパスを定義します。
val model = Predictors.getPredictorFromHdfs("path/to/model.jar", spark, "MODEL_ID")
時系列スコアリング¶
以下の例では、非時系列スコアリングの場合と同様に、transform
メソッドで、時系列スコアリングを実行する方法を示しています。 さらに、TimeSeriesOptions
ビルダーを使用して、時系列パラメーターをカスタマイズできます。
TimeSeriesOptions
ビルダーを介して時系列モデルに追加の引数を提供しない場合、transform
メソッドは、自動検出された予測ポイントの予測ポイントを返します。
val model = Predictors.getPredictor()
val forecastPointPredictions = model.transform(timeSeriesDf)
予測ポイントを定義するには、以下のbuildSingleForecastPointRequest()
ビルダーメソッドを使用します。
import com.datarobot.prediction.TimeSeriesOptions
val tsOptions = new TimeSeriesOptions.Builder().buildSingleForecastPointRequest("2010-12-05")
val model = Predictors.getPredictor(modelId, tsOptions)
val output = model.transform(inputDf)
過去の予測を返すには、以下のbuildForecastPointRequest()
ビルダーメソッドを使用して開始日付と終了日付を定義できます。
val tsOptions = new TimeSeriesOptions.Builder().buildForecastDateRangeRequest("2010-12-05", "2011-01-02")
完全なリファレンスについては、 TimeSeriesOptions javadocを参照してください。
廃止されたバッジ¶
2.4.1以前のSparkバージョン、または2.12以前のScala用にコンパイルされたSparkのサポートは、使用非推奨となります。 必要に応じて、Maven Centralで公開されている使用非推奨のライブラリにアクセスできますが、それ以上の更新は行われません。
以下のライブラリは、使用非推奨となっています。
名前 | Sparkバージョン | Scalaバージョン |
---|---|---|
scoring-code-spark-api_1.6.0 | 1.6.0 | 2.10 |
scoring-code-spark-api_2.4.3 | 2.4.3 | 2.11 |
scoring-code-spark-api_3.0.0 | 3.0.0 | 2.12 |