Externe pakketten gebruiken met Jupyter Notebooks in Apache Spark-clusters in HDInsight

Meer informatie over het configureren van een Jupyter Notebook in Een Apache Spark-cluster in HDInsight voor het gebruik van externe, door de community bijgedragen Apache Maven-pakketten die niet standaard in het cluster zijn opgenomen.

U kunt in de Maven-opslagplaats zoeken naar de volledige lijst met beschikbare pakketten. U kunt ook een lijst met beschikbare pakketten ophalen uit andere bronnen. Er is bijvoorbeeld een volledige lijst met door de community bijgedragen pakketten beschikbaar op Spark-pakketten.

In dit artikel leert u hoe u het spark-CSV-pakket gebruikt met de Jupyter Notebook.

Vereisten

Externe pakketten gebruiken met Jupyter Notebooks

  1. Navigeer naar https://CLUSTERNAME.azurehdinsight.net/jupyter de locatie van CLUSTERNAME uw Spark-cluster.

  2. Maak een nieuwe notebook. Selecteer Nieuw en selecteer Vervolgens Spark.

    Create a new Spark Jupyter Notebook.

  3. Er wordt een nieuwe notebook gemaakt en geopend met de naam Untitled.pynb. Selecteer de naam van het notitieblok bovenaan en voer een beschrijvende naam in.

    Provide a name for the notebook.

  4. U gebruikt de %%configure magic om het notebook te configureren voor het gebruik van een extern pakket. Zorg ervoor dat u de magie in de %%configure eerste codecel aanroept in notebooks die gebruikmaken van externe pakketten. Dit zorgt ervoor dat de kernel is geconfigureerd voor het gebruik van het pakket voordat de sessie wordt gestart.

    Belangrijk

    Als u vergeet de kernel in de eerste cel te configureren, kunt u de %%configure parameter -f gebruiken, maar die start de sessie opnieuw op en alle voortgang gaat verloren.

    HDInsight-versie Opdracht
    Voor HDInsight 3.5 en HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    Voor HDInsight 3.3 en HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. In het bovenstaande fragment worden de maven-coördinaten voor het externe pakket in de centrale Opslagplaats van Maven verwacht. In dit fragment com.databricks:spark-csv_2.11:1.5.0 is de maven-coördinaat voor spark-csv-pakket . U maakt als volgt de coördinaten voor een pakket.

    a. Zoek het pakket in de Maven-opslagplaats. Voor dit artikel gebruiken we spark-csv.

    b. Verzamel in de opslagplaats de waarden voor GroupId, ArtifactId en Version. Zorg ervoor dat de waarden die u verzamelt overeenkomen met uw cluster. In dit geval gebruiken we een Scala 2.11- en Spark 1.5.0-pakket, maar mogelijk moet u verschillende versies selecteren voor de juiste Scala- of Spark-versie in uw cluster. U vindt de Scala-versie op uw cluster door uit te voeren scala.util.Properties.versionString op de Spark Jupyter-kernel of op Spark submit. U vindt de Spark-versie op uw cluster door uit te voeren sc.version op Jupyter Notebooks.

    Use external packages with Jupyter Notebook.

    c. Voeg de drie waarden samen, gescheiden door een dubbele punt (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Voer de codecel uit met de %%configure magie. Hiermee configureert u de onderliggende Livy-sessie voor het gebruik van het pakket dat u hebt opgegeven. In de volgende cellen in het notebook kunt u nu het pakket gebruiken, zoals hieronder wordt weergegeven.

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

    Voor HDInsight 3.4 en lager moet u het volgende codefragment gebruiken.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. Vervolgens kunt u de fragmenten uitvoeren, zoals hieronder wordt weergegeven, om de gegevens te bekijken uit het dataframe dat u in de vorige stap hebt gemaakt.

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

Zie ook

Scenario's

Toepassingen maken en uitvoeren

Tools en uitbreidingen

Resources beheren