Skip to content

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

スコアリングコード用の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-predictPythonパッケージに含まれています。 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_IDMODEL_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

更新しました July 26, 2023