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

Meer informatie over het configureren van een Jupyter notebook in Apache Spark cluster op HDInsight voor het gebruik van externe, door de Community bijgedragen Apache maven -pakketten die niet out-of-the-box in het cluster zijn opgenomen.

U kunt in de maven-opslag plaats zoeken naar de volledige lijst met pakketten die beschikbaar zijn. U kunt ook een lijst met beschik bare pakketten uit andere bronnen ophalen. Een volledige lijst met door de Community bijgedragen pakketten is bijvoorbeeld beschikbaar in 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. Ga naar https://CLUSTERNAME.azurehdinsight.net/jupyter de locatie waar CLUSTERNAME de naam van uw Spark-cluster zich bevindt.

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

    Een nieuwe Spark-Jupyter Notebook maken

  3. Er wordt een nieuwe notebook gemaakt en geopend met de naam Untitled.pynb. Selecteer de naam van het notitie blok bovenaan en geef een beschrijvende naam op.

    Een naam opgeven voor de notebook

  4. U gebruikt de %%configure Magic om het notitie blok te configureren voor het gebruik van een extern pakket. Zorg er in notitie blokken die gebruikmaken van externe pakketten voor dat u het Magic aanroept %%configure in de eerste cel van de code. Dit zorgt ervoor dat de kernel zo is geconfigureerd dat het pakket wordt gebruikt voordat de sessie wordt gestart.

    Belangrijk

    Als u vergeet de kernel in de eerste cel te configureren, kunt u de gebruiken %%configure met de -f para meter, maar wordt de sessie opnieuw gestart en gaat alle voortgang 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. Het bovenstaande fragment verwacht de Maven-coördinaten voor het externe pakket in de centrale opslag plaats maven. In dit fragment com.databricks:spark-csv_2.11:1.5.0 is de Maven-coördinaat voor het Spark-CSV- pakket. Hier kunt u de coördinaten voor een pakket maken.

    a. Zoek het pakket in de Maven-opslag plaats. Voor dit artikel gebruiken we Spark-CSV.

    b. Verzamel de waarden voor GroupId, ArtifactId en Version uit de opslag plaats. 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 u moet mogelijk verschillende versies selecteren voor de juiste scala-of Spark-versie in uw cluster. U kunt de scala-versie in uw cluster vinden door uit te voeren scala.util.Properties.versionString op de Spark Jupyter-kernel of op Spark-verzen ding. U kunt de Spark-versie op uw cluster vinden door sc.version op Jupyter-notebooks uit te voeren.

    Externe pakketten gebruiken met Jupyter Notebook

    c. De drie waarden samen voegen, gescheiden door een dubbele punt (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Voer de code-cel uit met het %%configure Magic. Hiermee configureert u de onderliggende livy-sessie voor het gebruik van het pakket dat u hebt ingevoerd. In de volgende cellen in het notitie blok kunt u het pakket nu gebruiken, zoals hieronder wordt weer gegeven.

    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 code fragment 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. U kunt vervolgens de fragmenten uitvoeren, zoals hieronder wordt weer gegeven, om de gegevens weer te geven van de data frame die 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