Dela via


Använda externa paket med Jupyter Notebooks i Apache Spark-kluster i HDInsight

Lär dig hur du konfigurerar en Jupyter Notebook i Apache Spark-kluster i HDInsight för att använda externa, community-bidragna Apache maven-paket som inte ingår i klustret.

Du kan söka i Maven-lagringsplatsen efter den fullständiga listan över paket som är tillgängliga. Du kan också hämta en lista över tillgängliga paket från andra källor. En fullständig lista över community-bidragda paket finns till exempel på Spark Packages.

I den här artikeln får du lära dig hur du använder spark-csv-paketet med Jupyter Notebook.

Förutsättningar

Använda externa paket med Jupyter Notebooks

  1. Navigera till https://CLUSTERNAME.azurehdinsight.net/jupyter platsen där CLUSTERNAME är namnet på ditt Spark-kluster.

  2. Skapa en ny anteckningsbok. Välj Ny och välj sedan Spark.

    Skapa en ny Spark Jupyter Notebook.

  3. En ny anteckningsbok skapas och öppnas med namnet Untitled.pynb. Välj anteckningsbokens namn överst och ange ett eget namn.

    Ange ett namn för notebook-filen.

  4. Du använder magin %%configure för att konfigurera notebook-filen så att den använder ett externt paket. I notebook-filer som använder externa paket kontrollerar du att du anropar magin %%configure i den första kodcellen. Detta säkerställer att kerneln är konfigurerad för att använda paketet innan sessionen startar.

    Viktigt!

    Om du glömmer att konfigurera kerneln i den första cellen kan du använda %%configure med parametern -f , men det startar om sessionen och alla förlopp går förlorade.

    HDInsight-version Command
    För HDInsight 3.5 och HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    För HDInsight 3.3 och HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. Kodfragmentet ovan förväntar sig maven-koordinaterna för det externa paketet i Maven Central Repository. I det här kodfragmentet com.databricks:spark-csv_2.11:1.5.0 är maven-koordinaten för spark-csv-paketet . Så här konstruerar du koordinaterna för ett paket.

    a. Leta upp paketet på Maven-lagringsplatsen. I den här artikeln använder vi spark-csv.

    b. Från lagringsplatsen samlar du in värdena för GroupId, ArtifactId och Version. Kontrollera att de värden som du samlar in matchar klustret. I det här fallet använder vi ett Scala 2.11- och Spark 1.5.0-paket, men du kan behöva välja olika versioner för lämplig Scala- eller Spark-version i klustret. Du kan ta reda på Scala-versionen i klustret genom att köra scala.util.Properties.versionString på Spark Jupyter-kerneln eller vid Spark-sändning. Du kan ta reda på Spark-versionen i klustret genom att köra sc.version på Jupyter Notebooks.

    Använd externa paket med Jupyter Notebook.

    c. Sammanfoga de tre värdena, avgränsade med ett kolon (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Kör kodcellen med magin %%configure . Detta konfigurerar den underliggande Livy-sessionen så att den använder det paket som du angav. I de efterföljande cellerna i notebook-filen kan du nu använda paketet enligt nedan.

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

    För HDInsight 3.4 och lägre bör du använda följande kodfragment.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. Du kan sedan köra kodfragmenten, som du ser nedan, för att visa data från dataramen som du skapade i föregående steg.

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

Se även

Scenarier

Skapa och köra program

Verktyg och tillägg

Hantera resurser