Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erfahren Sie, wie Sie einen serverlosen Apache Spark-Pool in Azure Synapse mithilfe von Webtools erstellen. Anschließend lernen Sie, eine Verbindung mit dem Apache Spark-Pool herzustellen und Spark SQL-Abfragen für Dateien und Tabellen auszuführen. Apache Spark ermöglicht schnelle Datenanalysen und Cluster computing mithilfe von In-Memory-Verarbeitung. Informationen zu Spark in Azure Synapse finden Sie unter Übersicht: Apache Spark auf Azure Synapse.
Von Bedeutung
Die Abrechnung für Spark-Instanzen erfolgt pro Minute, unabhängig davon, ob Sie sie verwenden oder nicht. Stellen Sie sicher, dass Sie Ihre Spark-Instanz herunterfahren, nachdem Sie sie verwendet haben, oder legen Sie ein kurzes Timeout fest. Weitere Informationen finden Sie im Abschnitt "Ressourcen bereinigen " in diesem Artikel.
Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Voraussetzungen
- Sie benötigen ein Azure-Abonnement. Erstellen Sie bei Bedarf ein kostenloses Azure-Konto
- Synapse Analytics-Arbeitsbereich
- Serverlose Apache Spark-Pool
Melden Sie sich auf dem Azure-Portal an.
Melden Sie sich beim Azure-Portal an.
Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Azure-Konto , bevor Sie beginnen.
Erstellen eines Notizbuchs
Ein Notizbuch ist eine interaktive Umgebung, die verschiedene Programmiersprachen unterstützt. Mit dem Notizbuch können Sie mit Ihren Daten interagieren, Code mit Markdown, Text und einfachen Visualisierungen kombinieren.
Wählen Sie in der Azure-Portalansicht für den zu verwendenden Azure Synapse-Arbeitsbereich die Option "Synapse Studio starten" aus.
Nachdem Synapse Studio gestartet wurde, wählen Sie "Entwickeln" aus. Wählen Sie dann das Symbol "+" aus, um eine neue Ressource hinzuzufügen.
Wählen Sie dort " Notizbuch" aus. Ein neues Notizbuch wird erstellt und mit einem automatisch generierten Namen geöffnet.
Geben Sie im Eigenschaftenfenster einen Namen für das Notizbuch an.
Klicken Sie auf der Symbolleiste auf "Veröffentlichen".
Wenn in Ihrem Arbeitsbereich nur ein Apache Spark-Pool vorhanden ist, ist er standardmäßig ausgewählt. Verwenden Sie die Dropdownliste, um den richtigen Apache Spark-Pool auszuwählen, wenn keine ausgewählt ist.
Klicken Sie auf "Code hinzufügen". Die Standardsprache lautet
Pyspark. Sie werden eine Mischung aus Pyspark und Spark SQL verwenden, sodass die Standardauswahl in Ordnung ist. Andere unterstützte Sprachen sind Scala und .NET für Spark.Als Nächstes erstellen Sie ein einfaches Spark DataFrame-Objekt zum Bearbeiten. In diesem Fall erstellen Sie sie aus Code. Es gibt drei Zeilen und drei Spalten:
new_rows = [('CA',22, 45000),("WA",35,65000) ,("WA",50,85000)] demo_df = spark.createDataFrame(new_rows, ['state', 'age', 'salary']) demo_df.show()Führen Sie nun die Zelle mithilfe einer der folgenden Methoden aus:
Drücken Sie UMSCHALT+EINGABETASTE.
Wählen Sie das blaue Wiedergabesymbol links neben der Zelle aus.
Wählen Sie die Schaltfläche " Alle ausführen " auf der Symbolleiste aus.
Wenn die Apache Spark-Poolinstanz noch nicht ausgeführt wird, wird sie automatisch gestartet. Der Status der Apache Spark-Poolinstanz wird unterhalb der ausgeführten Zelle sowie im Statusbereich am unteren Rand des Notebooks angezeigt. Je nach Größe des Pools sollte der Start 2 bis 5 Minuten dauern. Nach Abschluss der Codeausführung werden unterhalb der Zelle Informationen zur Ausführungsdauer und zur Ausführung angezeigt. In der Ausgabezelle wird die Ausgabe angezeigt.
Die Daten sind jetzt in einem DataFrame vorhanden, von dort aus können Sie die Daten auf vielfältige Weise verwenden. Sie benötigen sie in verschiedenen Formaten für den Rest dieser Schnellstartanleitung.
Geben Sie den folgenden Code in eine andere Zelle ein, und führen Sie ihn aus. Dadurch wird eine Spark-Tabelle, eine CSV- und eine Parkettdatei mit Kopien der Daten erstellt:
demo_df.createOrReplaceTempView('demo_df') demo_df.write.csv('demo_df', mode='overwrite') demo_df.write.parquet('abfss://<<TheNameOfAStorageAccountFileSystem>>@<<TheNameOfAStorageAccount>>.dfs.core.windows.net/demodata/demo_df', mode='overwrite')Wenn Sie den Speicher-Explorer verwenden, ist es möglich, die Auswirkungen der beiden verschiedenen Methoden zum Schreiben einer oben verwendeten Datei zu erkennen. Wenn kein Dateisystem angegeben wird, wird in diesem Fall
default>user>trusted-service-user>demo_dfder Standardwert verwendet. Die Daten werden am Speicherort des angegebenen Dateisystems gespeichert.Beachten Sie, dass bei Schreibvorgängen sowohl im Format "csv" als auch "parquet" ein Verzeichnis mit vielen partitionierten Dateien erstellt wird.
Ausführen von Spark SQL-Anweisungen
Structured Query Language (SQL) ist die am häufigsten und weit verbreitetste Sprache zum Abfragen und Definieren von Daten. Spark SQL fungiert als Erweiterung für Apache Spark zur Verarbeitung strukturierter Daten mithilfe der vertrauten SQL-Syntax.
Fügen Sie den folgenden Code in eine leere Zelle ein, und führen Sie dann den Code aus. Der Befehl listet die Tabellen im Pool auf.
%%sql SHOW TABLESWenn Sie ein Notizbuch mit Ihrem Azure Synapse Apache Spark-Pool verwenden, erhalten Sie eine Voreinstellung
sqlContext, mit der Sie Abfragen mit Spark SQL ausführen können.%%sqlweist das Notizbuch an, die VoreinstellungsqlContextzum Ausführen der Abfrage zu verwenden. Die Abfrage ruft die obersten 10 Zeilen aus einer Systemtabelle ab, die standardmäßig in allen Azure Synapse Apache Spark Pools enthalten ist.Führen Sie eine weitere Abfrage aus, um die Daten in
demo_dfanzuzeigen.%%sql SELECT * FROM demo_dfDer Code erzeugt zwei Ausgabezellen, eine, die Datenergebnisse enthält, die andere, wodurch die Auftragsansicht angezeigt wird.
Standardmäßig wird in der Ergebnisansicht ein Raster angezeigt. Unter dem Raster befindet sich jedoch ein Ansichtsschalter, der es der Ansicht ermöglicht, zwischen Raster- und Diagrammansichten zu wechseln.
Wählen Sie im Ansichtsschalter"Diagramm" aus.
Wählen Sie das Symbol "Ansichtsoptionen" von ganz rechts aus.
Wählen Sie im Feld "Diagrammtyp " die Option "Balkendiagramm" aus.
Wählen Sie im Spaltenfeld der X-Achse "Zustand" aus.
Wählen Sie im Spaltenfeld der Y-Achse "Gehalt" aus.
Wählen Sie im Feld "Aggregation " die Option "AVG" aus.
Wählen Sie Anwenden.
Es ist möglich, dieselbe Erfahrung mit der Ausführung von SQL zu erhalten, aber ohne die Sprachen wechseln zu müssen. Sie können dies tun, indem Sie die oben genannte SQL-Zelle durch diese PySpark-Zelle ersetzen, die Ausgabeoberfläche ist identisch, da der Anzeigebefehl verwendet wird:
display(spark.sql('SELECT * FROM demo_df'))Bei den zuvor ausgeführten Zellen bestand jeweils die Möglichkeit, zum Verlaufsserver und zur Überwachung zu wechseln. Wenn Sie auf die Links klicken, gelangen Sie zu verschiedenen Teilen der Benutzeroberfläche.
Hinweis
Einige der offiziellen Dokumentationen von Apache Spark basieren auf der Verwendung der Spark-Konsole, die auf Synapse Spark nicht verfügbar ist. Verwenden Sie stattdessen die Notebook-Umgebung oder die IntelliJ-Oberfläche.
Bereinigen von Ressourcen
Azure Synapse speichert Ihre Daten in Azure Data Lake Storage. Sie können eine Spark-Instanz sicher herunterfahren lassen, wenn sie nicht verwendet wird. Sie werden für einen serverlosen Apache Spark-Pool in Rechnung gestellt, solange er ausgeführt wird, auch wenn er nicht verwendet wird.
Da die Gebühren für den Pool oft mehr sind als die Gebühren für den Speicher, ist es sinnvoll, Spark-Instanzen herunterzufahren, wenn sie nicht verwendet werden.
Um sicherzustellen, dass die Spark-Instanz heruntergefahren wird, beenden Sie alle verbundenen Sitzungen(Notizbücher). Der Pool wird beendet, wenn die im Apache Spark-Pool angegebene Leerlaufzeit erreicht ist. Sie können die Endsitzung auch über die Statusleiste am unteren Rand des Notizbuchs auswählen.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie erfahren, wie Sie einen serverlosen Apache Spark-Pool erstellen und eine einfache Spark SQL-Abfrage ausführen.