Verwenden externer Pakete mit Jupyter Notebooks in Apache Spark-Clustern unter HDInsightUse external packages with Jupyter notebooks in Apache Spark clusters on HDInsight

Erfahren Sie, wie Sie ein Jupyter Notebook in einem Apache Spark-Cluster in HDInsight konfigurieren, um externe, von der Community bereitgestellte maven-Pakete von Apache zu verwenden, die nicht im Lieferumfang des Clusters enthalten sind.Learn how to configure a Jupyter Notebook in Apache Spark cluster on HDInsight to use external, community-contributed Apache maven packages that are not included out-of-the-box in the cluster.

Sie können das Maven Repository nach einer vollständigen Liste der verfügbaren Pakete durchsuchen.You can search the Maven repository for the complete list of packages that are available. Sie können die Liste der verfügbaren Pakete auch aus anderen Quellen abrufen.You can also get a list of available packages from other sources. Beispielsweise steht eine vollständige Liste der von der Community bereitgestellten Pakete auf Spark-Paketezur Verfügung.For example, a complete list of community-contributed packages is available at Spark Packages.

In diesem Artikel erfahren Sie, wie Sie das Paket spark-csv mit Jupyter Notebook verwenden.In this article, you will learn how to use the spark-csv package with the Jupyter notebook.

VoraussetzungenPrerequisites

Sie benötigen Folgendes:You must have the following:

Verwenden von externen Paketen mit Jupyter NotebooksUse external packages with Jupyter notebooks

  1. Klicken Sie im Azure-Portalim Startmenü auf die Kachel für Ihren Spark-Cluster (sofern Sie die Kachel ans Startmenü angeheftet haben).From the Azure Portal, from the startboard, click the tile for your Spark cluster (if you pinned it to the startboard). Sie können auch unter Alle durchsuchen > HDInsight-Cluster zu Ihrem Cluster navigieren.You can also navigate to your cluster under Browse All > HDInsight Clusters.

  2. Klicken Sie auf dem Blatt für den Spark-Cluster auf Quicklinks und anschließend auf dem Blatt Cluster-Dashboard auf Jupyter Notebook.From the Spark cluster blade, click Quick Links, and then from the Cluster Dashboard blade, click Jupyter Notebook. Geben Sie die Administratoranmeldeinformationen für den Cluster ein, wenn Sie dazu aufgefordert werden.If prompted, enter the admin credentials for the cluster.

    Hinweis

    Sie können auch das Jupyter Notebook für Ihren Cluster aufrufen, indem Sie in Ihrem Browser die folgende URL öffnen.You may also reach the Jupyter Notebook for your cluster by opening the following URL in your browser. Ersetzen Sie CLUSTERNAME durch den Namen Ihres Clusters:Replace CLUSTERNAME with the name of your cluster:

    https://CLUSTERNAME.azurehdinsight.net/jupyter

  3. Erstellen Sie ein neues Notebook.Create a new notebook. Klicken Sie auf Neu und anschließend auf Spark.Click New, and then click Spark.

    Erstellen eines neuen Jupyter NotebooksCreate a new Jupyter notebook

  4. Ein neues Notebook mit dem Namen „Untitled.pynb“ wird erstellt und geöffnet.A new notebook is created and opened with the name Untitled.pynb. Klicken Sie oben auf den Namen des Notebooks, und geben Sie einen Anzeigenamen ein.Click the notebook name at the top, and enter a friendly name.

    Angeben eines neuen Namens für das NotebookProvide a name for the notebook

  5. Verwenden Sie die %%configure -Magic, um das Notebook so zu konfigurieren, dass es ein externes Paket verwendet.You will use the %%configure magic to configure the notebook to use an external package. Stellen Sie sicher, dass Notebooks, die externe Pakete verwenden, die %%configure -Magic in der ersten Codezelle aufrufen.In notebooks that use external packages, make sure you call the %%configure magic in the first code cell. Dadurch wird sichergestellt, dass der Kernel für die Verwendung des Pakets konfiguriert ist, bevor die Sitzung gestartet wird.This ensures that the kernel is configured to use the package before the session starts.

    Wichtig

    Wenn Sie vergessen, den Kernel in der ersten Zelle zu konfigurieren, können Sie %%configure mit dem Parameter -f verwenden. Allerdings wird die Sitzung dadurch neu gestartet, und der bisherige Fortschritt geht verloren.If you forget to configure the kernel in the first cell, you can use the %%configure with the -f parameter, but that will restart the session and all progress will be lost.

    HDInsight-VersionHDInsight version Get-HelpCommand
    Für HDInsight 3.3 und HDInsight 3.4For HDInsight 3.3 and HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
    Für HDInsight 3.5 und HDInsight 3.6For HDInsight 3.5 and HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.10:1.4.0" }}
  6. Im obigen Codeausschnitt werden die Maven-Koordinaten für das externe Paket im zentralen Maven-Repository erwartet.The snippet above expects the maven coordinates for the external package in Maven Central Repository. In diesem Codeausschnitt ist com.databricks:spark-csv_2.10:1.4.0 die Maven-Koordinate für das Paket spark-csv .In this snippet, com.databricks:spark-csv_2.10:1.4.0 is the maven coordinate for spark-csv package. Nachstehend finden Sie eine Anleitung zur Erstellung von Koordinaten für ein Paket.Here's how you construct the coordinates for a package.

    a.a. Suchen Sie das Paket im Maven-Repository.Locate the package in the Maven Repository. In diesem Artikel verwenden wir spark-csv.For this article, we use spark-csv.

    b.b. Sammeln Sie im Repository die Werte für GroupId, ArtifactId und Version.From the repository, gather the values for GroupId, ArtifactId, and Version. Vergewissern Sie sich, dass die erfassten Werte Ihrem Cluster entsprechen.Make sure that the values you gather match your cluster. In diesem Fall wird ein Scala 2.10- und Spark 1.4.0-Paket verwendet, möglicherweise müssen Sie jedoch für die jeweilige Scala- oder Spark-Version in Ihrem Cluster andere Versionen auswählen.In this case, we are using a Scala 2.10 and Spark 1.4.0 package, but you may need to select different versions for the appropriate Scala or Spark version in your cluster. Sie können die Scala-Version im Cluster ermitteln, indem Sie scala.util.Properties.versionString im Spark Jupyter-Kernel oder in Spark-Submit ausführen.You can find out the Scala version on your cluster by running scala.util.Properties.versionString on the Spark Jupyter kernel or on Spark submit. Sie können die Spark-Version im Cluster ermitteln, indem Sie sc.version für Jupyter Notebooks ausführen.You can find out the Spark version on your cluster by running sc.version on Jupyter notebooks.

    Verwenden externer Pakete mit Jupyter NotebooksUse external packages with Jupyter notebook

    c.c. Verketten Sie die drei Werte, getrennt durch einen Doppelpunkt ( : ).Concatenate the three values, separated by a colon (:).

     com.databricks:spark-csv_2.10:1.4.0
    
  7. Führen Sie die Codezelle mit der %%configure -Magic aus.Run the code cell with the %%configure magic. Dadurch wird die zugrunde liegende Livy-Sitzung für die Verwendung des von Ihnen bereitgestellten Pakets konfiguriert.This will configure the underlying Livy session to use the package you provided. Sie können das Paket nun in den folgenden Codezellen in Ihrem Notebook verwenden, wie unten dargestellt.In the subsequent cells in the notebook, you can now use the package, as shown below.

     val df = sqlContext.read.format("com.databricks.spark.csv").
     option("header", "true").
     option("inferSchema", "true").
     load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    

    Für HDInsight 3.6 sollten Sie den folgenden Codeausschnitt verwenden.For HDInsight 3.6, you should use the following snippet.

     val df = spark.read.format("com.databricks.spark.csv").
     option("header", "true").
     option("inferSchema", "true").
     load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  8. Anschließend können Sie die Codeausschnitte wie unten dargestellt ausführen, um die Daten aus dem im vorherigen Schritt erstellten Datenrahmen anzuzeigen.You can then run the snippets, like shown below, to view the data from the dataframe you created in the previous step.

     df.show()
    
     df.select("Time").count()
    

Weitere InformationenSee also

SzenarienScenarios

Erstellen und Ausführen von AnwendungenCreate and run applications

Tools und ErweiterungenTools and extensions

Verwalten von RessourcenManage resources