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

Dieser Abschnitt enthält Informationen für Entwickler, die Apache Spark zur Vorverarbeitung von Daten und Amazon SageMaker für Modellschulung und -Hosting einsetzen möchten. Weitere Informationen zu unterstützten Versionen von Apache Spark finden Sie unterSageMaker Spark bekommenSeite im SageMaker Spark GitHub Repository.

SageMaker bietet eine Apache Spark-Bibliothek für Python und Scala, mit der Sie Modelle in SageMaker mithilfe von einfach schulen können.org.apache.spark.sql.DataFrameDatenrahmen in Ihren Spark-Clustern. Nach der Modellschulung kann das Modell mit den SageMaker-Hosting-Services von gehostet werden.

Die SageMaker Spark-Bibliothek,com.amazonaws.services.sagemaker.sparksdk, bietet beispielsweise 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 das verwendenSageMakerModelfür das Modell-Hosting und den Abruf von Inferenzen in SageMaker.

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

Laden Sie die SageMaker-Spark-Bibliothek

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

  • Sie können den Quellcode für die PySpark- und die Scala-Bibliothek von derSageMaker SparkGitHub-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 entwederSparkmagic (PySpark)oder dasSparkmagic (PySpark3)Kernel und stellen Sie eine Verbindung zu einem Remote-Amazon EMR-Cluster her.

      Anmerkung

      Das EMR-Cluster muss mit einer IAM-Rolle konfiguriert sein, dieAmazonSageMakerFullAccess-Richtlinie ist beigefügt. Weitere Informationen zum Konfigurieren von Rollen für ein EMR-Cluster finden Sie unterKonfigurieren von IAM-Rollen für 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 die Schätzfunktion der SageMaker Spark-Bibliothek für die Modellschulung. Wenn Sie beispielsweise den von SageMaker für die Modellschulung bereitgestellten k-means-Algorithmus auswählen, 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 das Modelltraining in SageMaker durch das Senden eines SageMakerCreateTrainingJobrequest. Nach Abschluss der Modellschulung speichert SageMaker die Modellartefakte in einem S3-Bucket.

      SageMaker übernimmt die IAM-Rolle, die Sie für die Modellschulung zur Ausführung 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, um die angegebenen Ressourcen zu starten und das Modell auf diesen zu hosten.

  3. Mithilfe von können Sie Inferenzen von Ihrem in SageMaker gehosteten Modell abrufen.SageMakerModel.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 anInvokeEndpointSageMaker-API, um Schlussfolgerungen zu erhalten. Die transform-Methode hängt die Inferenzen an den Eingabe-DataFrame an.