Usare pacchetti esterni con Jupyter Notebook nei cluster Apache Spark in HDInsight

Informazioni su come configurare un notebook di Jupyter nel cluster Apache Spark in HDInsight per l'uso di pacchetti Apache maven esterni forniti dalla community che non sono inclusi nel cluster.

Per un elenco completo dei pacchetti disponibili, è possibile eseguire ricerche nel repository Maven . È anche possibile ottenere un elenco dei pacchetti disponibili da altre origini. Ad esempio, un elenco completo dei pacchetti creati dalla community è disponibile nel sito Web spark-packages.org.

In questo articolo si apprenderà come usare il pacchetto spark-csv con Jupyter Notebook.

Prerequisiti

Usare pacchetti esterni con Jupyter Notebook

  1. Passare a https://CLUSTERNAME.azurehdinsight.net/jupyter dove CLUSTERNAME è il nome del cluster Spark.

  2. Creare un nuovo notebook. Selezionare Nuovo e quindi Spark.

    Create a new Spark Jupyter Notebook.

  3. Un nuovo notebook verrà creato e aperto con il nome Untitled.pynb. Selezionare il nome del notebook nella parte superiore e immettere un nome descrittivo.

    Provide a name for the notebook.

  4. Si userà il %%configure magic per configurare il notebook per l'uso di un pacchetto esterno. Nei notebook che usano pacchetti esterni assicurarsi di richiamare %%configure magic nella prima cella del codice. Questo accorgimento garantisce che il kernel sia configurato per l'uso del pacchetto prima dell'avvio della sessione.

    Importante

    Se si dimentica di configurare il kernel nella prima cella, è possibile usare %%configure magic con il parametro -f. In questo modo, tuttavia, la sessione verrà riavviata e le operazioni eseguite andranno perse.

    Versione HDInsight Comando
    Per HDInsight 3.5 e HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    Per HDInsight 3.3 e HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. Il frammento di codice riportato sopra attende le coordinate Maven per il pacchetto esterno nel repository centrale Maven. In questo frammento di codice com.databricks:spark-csv_2.11:1.5.0 è la coordinata Maven per il pacchetto spark-csv . Di seguito viene spiegato come creare le coordinate per un pacchetto.

    a. Individuare un pacchetto nel repository Maven. Per questo articolo viene usato spark-csv.

    b. Recuperare dal repository i valori per GroupId, ArtifactId e Version. Assicurarsi che i valori che si raccolgono corrispondano al cluster. In questo caso si usa un pacchetto Scala 2.11 e Spark 1.5.0, ma potrebbe essere necessario selezionare versioni diverse per la versione di Scala o Spark appropriata nel cluster. È possibile trovare la versione di Scala nel cluster eseguendo scala.util.Properties.versionString nel kernel Jupyter Spark o nell'invio di Spark. È possibile trovare la versione di Spark nel cluster eseguendo sc.version in Jupyter Notebooks.

    Use external packages with Jupyter Notebook.

    c. Concatenare i tre valori, separati da due punti (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Eseguire la cella di codice con %%configure magic. Questa operazione configura la sessione Livy sottostante per l'uso del pacchetto fornito. Nelle celle successive del notebook è ora possibile usare il pacchetto, come mostrato di seguito.

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

    Per HDInsight 3.4 e versioni successive, è consigliabile usare il frammento di codice seguente.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. È quindi possibile eseguire i frammenti di codice, come mostrato di seguito, per visualizzare i dati del frame di dati creato nel passaggio precedente.

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

Vedi anche

Scenari

Creare ed eseguire applicazioni

Strumenti ed estensioni

Gestione risorse