Verwenden von Apache Spark mit Amazon SageMaker - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Apache Spark mit Amazon SageMaker

Amazon SageMaker Spark ist eine Open-Source-Spark-Bibliothek, mit der Sie Spark-Machine-Learning-(ML)-Pipelines mit erstellen können SageMaker. Dies vereinfacht die Integration von Spark-ML-Stufen in SageMaker Stufen wie Modelltraining und -hosting. Weitere Informationen zu SageMaker Spark finden Sie im SageMaker Spark GitHub-Repository.

Die SageMaker Spark-Bibliothek ist in Python und Scala verfügbar. Sie können SageMaker Spark verwenden, um Modelle in mithilfe SageMaker von org.apache.spark.sql.DataFrame Datenframes in Ihren Spark-Clustern zu trainieren. Nach dem Modelltraining können Sie das Modell auch mithilfe von SageMaker Hosting-Services hosten.

Die SageMaker Spark-Bibliothek, com.amazonaws.services.sagemaker.sparksdk, bietet unter anderem die folgenden Klassen:

  • SageMakerEstimator — Erweitert die org.apache.spark.ml.Estimator Schnittstelle. Sie können diese Schätzfunktion für die Modellschulung in SageMaker verwenden.

  • KMeansSageMakerEstimator, PCASageMakerEstimator, und XGBoostSageMakerEstimator — Erweitert die SageMakerEstimator Klasse.

  • SageMakerModel — Erweitert org.apache.spark.ml.Model Klasse. Sie können SageMakerModel für das Modell-Hosting und den Abruf von Inferenzen in SageMaker einsetzen.

Sie können den Quellcode sowohl für Python Spark (PySpark) als auch für Scala-Bibliotheken aus dem SageMaker Spark GitHub-Repository herunterladen.

Installation und Beispiele für die SageMaker Spark-Bibliothek finden Sie unter SageMaker Beispiele für Spark für Scala oder SageMaker Beispiele für Spark für Python (PySpark).

Wenn Sie Amazon EMR in verwenden, AWS um Spark-Cluster zu verwalten, finden Sie weitere Informationen unter Apache Spark. Weitere Informationen zur Verwendung von Amazon EMR in finden Sie SageMakerunter Daten mit Amazon EMR vorbereiten.

Integration Ihrer Apache Spark-Anwendung in SageMaker

Im Folgenden finden Sie eine allgemeine Zusammenfassung der Schritte zur Integration Ihrer Apache-Spark-Anwendung in SageMaker.

  1. Setzen Sie die Datenvorverarbeitung mithilfe der Apache Spark-Bibliothek fort, mit der Sie vertraut sind. Ihr Dataset bleibt ein DataFrame in Ihrem Spark-Cluster. Laden Sie die Daten in den DataFrame und starten Sie die Vorverarbeitung, damit Sie die features-Spalte mit einem org.apache.spark.ml.linalg.Vector-Element des Doubles-Typs und eine optionale label-Spalte mit Werten des Double-Typs erhalten.

  2. Verwenden Sie den Schätzer in der SageMaker Spark-Bibliothek, um Ihr Modell zu trainieren. Wenn Sie beispielsweise den k-Means-Algorithmus auswählen, der von SageMaker für das Modelltraining bereitgestellt wird, rufen Sie die KMeansSageMakerEstimator.fit Methode auf.

    Geben Sie Ihren DataFrame als Eingabe an. Von der Schätzfunktion wird ein SageMakerModel-Objekt zurückgegeben.

    Anmerkung

    SageMakerModel ist eine Erweiterung von org.apache.spark.ml.Model.

    Von der fit-Methode werden folgende Schritte ausgeführt:

    1. Der als Eingabe spezifizierte DataFrame wird in das "protobuf"-Format konvertiert. Dazu erfolgt eine Auswahl der Spalten features und label aus dem Eingabe DataFrame sowie der Upload der "protobuf"-Daten in einen Amazon S3-Bucket. Das "protobuf"-Format ist effizient für die Modellschulung in SageMaker.

    2. Startet das Modelltraining in SageMaker durch Senden einer SageMaker CreateTrainingJob -Anforderung. Nachdem das Modelltraining abgeschlossen ist, SageMaker speichert die Modellartefakte in einem S3-Bucket.

      SageMaker übernimmt die IAM-Rolle, die Sie für das Modelltraining angegeben haben, um Aufgaben in Ihrem Namen auszuführen. Beispielsweise wird die Rolle zum Lesen von Schulungsdaten aus einem S3-Bucket und zum Schreiben von Modellartefakten in einen Bucket verwendet.

    3. Ein SageMakerModel-Objekt wird erstellt und zurückgegeben. Der Konstruktor führt im Zusammenhang mit der Modellbereitstellung in SageMaker die folgenden Schritte aus:

      1. Sendet eine CreateModel Anforderung an SageMaker.

      2. Sendet eine CreateEndpointConfig-Anforderung an SageMaker.

      3. Sendet eine CreateEndpoint Anforderung an SageMaker, die dann die angegebenen Ressourcen startet und das Modell auf ihnen hostet.

  3. Sie können Rückschlüsse aus Ihrem in gehosteten Modell SageMaker mit der erhaltenSageMakerModel.transform.

    Stellen Sie einen DataFrame mit Merkmalen als Eingabe bereit. Die transform-Methode transformiert dies in einen DataFrame, der Inferenzen enthält. Intern sendet die transform Methode eine Anforderung an die InvokeEndpoint SageMaker API, um Inferenzen zu erhalten. Die transform-Methode hängt die Inferenzen an den Eingabe-DataFrame an.