Erste Schritte mit Apache SparkGet started with Apache Spark

Dieses Lernprogramm Modul hilft Ihnen beim schnellen Einstieg in die Verwendung von Apache Spark.This tutorial module helps you to get started quickly with using Apache Spark. Die wichtigsten Konzepte werden kurz erläutert, sodass Sie sofort mit dem Schreiben Ihrer ersten Apache Spark Anwendung vertraut sind.We discuss key concepts briefly, so you can get right down to writing your first Apache Spark application. In den anderen Lernprogramm Modulen in diesem Handbuch haben Sie die Möglichkeit, den Artikel Ihrer Wahl genauer zu unterstützen.In the other tutorial modules in this guide, you will have the opportunity to go deeper into the article of your choice.

In diesem Tutorial-Modul erfahren Sie Folgendes:In this tutorial module, you will learn:

Außerdem werden Beispiel Notebooks bereitgestellt, die Sie importieren können, um auf alle im Modul enthaltenen Codebeispiele zuzugreifen und diese auszuführen.We also provide sample notebooks that you can import to access and run all of the code examples included in the module.

Requirements (Anforderungen)Requirements

Vervollständigen des Schnellstarts: Ausführen eines Spark-Auftrags auf Azure Databricks mithilfe des Azure-Portal.Complete Quickstart: Run a Spark job on Azure Databricks using the Azure portal.

Spark-Schnittstellen Spark interfaces

Es gibt drei wichtige Apache Spark Schnittstellen, die Sie kennen sollten: robustes verteiltes DataSet, dataframe und DataSet.There are three key Apache Spark interfaces that you should know about: Resilient Distributed Dataset, DataFrame, and Dataset.

  • Robustes verteiltes DataSet: die erste Apache Spark Abstraktion war das robuste verteilte DataSet (RDD).Resilient Distributed Dataset: The first Apache Spark abstraction was the Resilient Distributed Dataset (RDD). Es handelt sich um eine Schnittstelle zu einer Sequenz von Datenobjekten, die aus einem oder mehreren Typen besteht, die sich in einer Sammlung von Computern (einem Cluster) befinden.It is an interface to a sequence of data objects that consist of one or more types that are located across a collection of machines (a cluster). RDDS können auf verschiedene Weise erstellt werden, und es handelt sich um die verfügbare API der niedrigsten Ebene.RDDs can be created in a variety of ways and are the “lowest level” API available. Obwohl dies die ursprüngliche Datenstruktur für Apache Spark ist, sollten Sie sich auf die dataframe-API konzentrieren, die eine supermenge der RDD-Funktionalität darstellt.While this is the original data structure for Apache Spark, you should focus on the DataFrame API, which is a superset of the RDD functionality. Die RDD-API ist in den Java-, Python-und Scala-Sprachen verfügbar.The RDD API is available in the Java, Python, and Scala languages.
  • Dataframe: Dies ähnelt dem Konzept des dataframes, mit dem Sie in der Pandas -Python-Bibliothek und der Programmier Sprache Rvertraut sein könnten.DataFrame: These are similar in concept to the DataFrame you may be familiar with in the pandas Python library and the R language. Die dataframe-API ist in den Sprachen Java, Python, R und Scala verfügbar.The DataFrame API is available in the Java, Python, R, and Scala languages.
  • DataSet: eine Kombination aus dataframe und RDD.Dataset: A combination of DataFrame and RDD. Es stellt die typisierte Schnittstelle bereit, die in RDDS verfügbar ist, während die Vorteile des dataframes bereitgestellt werden.It provides the typed interface that is available in RDDs while providing the convenience of the DataFrame. Die DataSet-API ist in den Sprachen Java und Scala verfügbar.The Dataset API is available in the Java and Scala languages.

In vielen Szenarien, insbesondere bei den in dataframes und Datasets eingebetteten Leistungsoptimierungen, ist es nicht erforderlich, mit RDDS zu arbeiten.In many scenarios, especially with the performance optimizations embedded in DataFrames and Datasets, it will not be necessary to work with RDDs. Es ist jedoch wichtig, die RDD-Abstraktion aus folgenden Gründen zu verstehen:But it is important to understand the RDD abstraction because:

  • Bei der RDD handelt es sich um die zugrunde liegende Infrastruktur, mit der Spark so schnell wie möglich ausgeführt werden kann.The RDD is the underlying infrastructure that allows Spark to run so fast and provide data lineage.
  • Wenn Sie in erweiterte Komponenten von Spark eintauchen, ist es möglicherweise erforderlich, RDDS zu verwenden.If you are diving into more advanced components of Spark, it may be necessary to use RDDs.
  • Die Visualisierungen in der Spark-Benutzeroberfläche verweisen auf RDDS.The visualizations within the Spark UI reference RDDs.

Wenn Sie Spark-Anwendungen entwickeln, verwenden Sie in der Regel das Tutorial zu dataframes -Lernprogrammen und- DataSets.When you develop Spark applications, you typically use DataFrames tutorial and Datasets tutorial.

Schreiben Ihrer ersten Apache Spark Anwendung Write your first Apache Spark application

Um Ihre erste Apache Spark Anwendung zu schreiben, fügen Sie den Zellen eines Azure Databricks Notebooks Code hinzu.To write your first Apache Spark application, you add code to the cells of an Azure Databricks notebook. In diesem Beispiel wird Python verwendet.This example uses Python. Weitere Informationen finden Sie auch unter Apache Spark Schnellstarthandbuch.For more information, you can also reference the Apache Spark Quick Start Guide.

Dieser erste Befehl listet den Inhalt eines Ordners im databricks-Datei Systemauf:This first command lists the contents of a folder in the Databricks File System:

# Take a look at the file system
display(dbutils.fs.ls("/databricks-datasets/samples/docs/"))

OrdnerinhaltFolder contents

Der nächste Befehl verwendet spark , das SparkSession in jedem Notebook verfügbar,, um die README.md Textdatei zu lesen und einen dataframe mit dem Namen zu erstellen textFile :The next command uses spark, the SparkSession available in every notebook, to read the README.md text file and create a DataFrame named textFile:

textFile = spark.read.text("/databricks-datasets/samples/docs/README.md")

Zum zählen der Zeilen der Textdatei wenden count Sie die Aktion auf den dataframe an:To count the lines of the text file, apply the count action to the DataFrame:

textFile.count()

Zeilen Anzahl der TextdateiText file line count

Vielleicht bemerken Sie, dass der zweite Befehl, der die Textdatei liest, keine Ausgabe generiert, während der dritte Befehl, der ausführt, ausführt count .One thing you may notice is that the second command, reading the text file, does not generate any output while the third command, performing the count, does. Der Grund hierfür ist, dass der erste Befehl eine Transformation ist, während der zweite Befehl eine _Aktion_ist.The reason for this is that the first command is a transformation while the second one is an action. Transformationen sind verzögert und werden nur ausgeführt, wenn eine Aktion ausgeführt wird.Transformations are lazy and run only when an action is run. Dadurch kann Spark die Leistung optimieren (z. b. einen Filter vor einem Join ausführen), anstatt Befehle serialisiert auszuführen.This allows Spark to optimize for performance (for example, run a filter prior to a join), instead of running commands serially. Eine umfassende Liste der Transformationen und Aktionen finden Sie im Apache Spark-Programmier Handbuch: Transformationen und Aktionen.For a complete list of transformations and actions, refer to the Apache Spark Programming Guide: Transformations and Actions.

Azure Databricks von Datasets Azure Databricks datasets

Azure Databricks enthält eine Reihe von DataSets im Arbeitsbereich, die Sie zum Erlernen von Spark oder Testen von Algorithmen verwenden können.Azure Databricks includes a variety of datasets within the workspace that you can use to learn Spark or test out algorithms. Diese werden im Leitfaden für die ersten Schritte angezeigt.You’ll see these throughout the getting started guide. Die Datasets sind im Ordner verfügbar /databricks-datasets .The datasets are available in the /databricks-datasets folder.

Notebooks Notebooks

Um auf diese Codebeispiele und vieles mehr zuzugreifen, importieren Sie eines der folgenden Notebooks.To access these code examples and more, import the one of the following notebooks.

Apache Spark Schnellstart python NotebookApache Spark Quick Start Python notebook

Notebook abrufenGet notebook

Apache Spark Schnellstart Scala-NotebookApache Spark Quick Start Scala notebook

Notebook abrufenGet notebook