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

In diesem Abschnitt finden Sie Informationen für Entwickler, die Apache Spark zur Vorverarbeitung von Daten und Amazon einsetzen möchten SageMaker für Modelltraining und Hosting. Weitere Informationen zu von Apache Spark unterstützten Versionen finden Sie inErhalten von SageMakerSeite im SageMaker Spark GitHub -Repository.

SageMaker verfügt über eine Apache Spark-Bibliothek für Python und Scala, mit der Sie Modelle einfach schulen können SageMaker unter Verwendung vonorg.apache.spark.sql.DataFrameDatenrahmen in Ihren Spark-Clustern. Nach der Modellschulung kann das Modell mit SageMaker Hosting-Dienste.

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

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

  • KMeansSageMakerEstimator,PCASageMakerEstimator, undXGBoostSageMakerEstimator—Erweitern derSageMakerEstimator-Klasse.

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

mit SageMaker Studio können Sie einfach eine Verbindung mit einem Amazon EMR-Cluster herstellen. Weitere Informationen finden Sie unterBereiten Sie Daten im Maßstab mit Studio-Notebooks voraus.

Herunterladen des SageMaker Spark-Bibliothek

Sie können die Spark-Bibliothek von SageMaker herunterladen:

  • Sie können den Quellcode für beide herunterladen PySpark und Scala-Bibliotheken aus derSageMaker-Spark GitHub -Repository.

  • Für die Python-Spark-Bibliothek stehen weitere Optionen zur Verfügung:

    • Verwenden Sie "pip install":

      pip install sagemaker_pyspark
    • In einer Notebook-Instance erstellen Sie ein neues Notebook, das entweder dieSparkmagic (PySpark)oder dasSparkmagic (PySpark3)Kernel und stellen Sie eine Verbindung zu einem Remote-Amazon EMR-Cluster her.

      Anmerkung

      Der EMR-Cluster muss mit einer IAM-Rolle konfiguriert sein, die überAmazonSageMakerFullAccessRichtlinie angefügt. Weitere Informationen zum Konfigurieren von Rollen für einen EMR-Cluster finden Sie unterKonfigurieren von IAM-Rollen für Amazon EMR-Berechtigungen fürAWSServicesimAmazon EMR-Management-Leitfadenaus.

       

  • Die Scala-Bibliothek können Sie von Maven abrufen. Fügen Sie die Spark-Bibliothek zum Projekt hinzu, indem Sie die Datei pom.xml um folgende Abhängigkeit ergänzen:

    <dependency> <groupId>com.amazonaws</groupId> <artifactId>sagemaker-spark_2.11</artifactId> <version>spark_2.2.0-1.0</version> </dependency>

Integrieren Sie Ihre Apache Spark-Anwendung in SageMaker

Nachstehend finden Sie eine allgemeine Übersicht über die Schritte, die zur Integration Ihrer Apache Spark-Anwendung in SageMaker erforderlich sind.

  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 im SageMaker Spark-Library zum Trainieren Ihres Modells. Beispielsweise wählen Sie den k-means-Algorithmus von SageMaker Für Modelltraining rufen Sie dieKMeansSageMakerEstimator.fit-Methode.

    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. Konvertiert die EingabeDataFramezum Protobuf-Format durch Auswahl derfeaturesundlabelSpalten aus der EingabeDataFrameund Hochladen der Protobuf-Daten in einen Amazon S3 S3-Bucket. Das „protobuf“ -Format ist effizient für die Modellschulung in SageMaker.

    2. Startet die Modellschulung in SageMaker indem Sie eine SageMaker CreateTrainingJobrequest. Nachdem das Modelltraining abgeschlossen ist, SageMaker speichert die Modellartefakte in einem S3-Bucket.

      SageMaker übernimmt die IAM-Rolle, die Sie für die Modellschulung zum Ausführen von Aufgaben in Ihrem Namen angegeben haben. 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 eineCreateModelAnfrage an SageMaker.

      2. Sendet eineCreateEndpointConfigAnfrage an SageMaker.

      3. Sendet eineCreateEndpoint-Anforderung an SageMaker, der dann die angegebenen Ressourcen startet und das Modell auf diesen hostet.

  3. Sie können Schlussfolgerungen von Ihrem Modell, das in gehostet wird, abrufen SageMaker mit demSageMakerModel.transformaus.

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