Usar pacotes externos com notebooks Jupyter em clusters Apache Spark no HDInsight

Aprenda a configurar um Jupyter Notebook no cluster do Apache Spark no HDInsight para usar pacotes externos do Apache maven contribuídos pela comunidade, que não são incluídos no cluster de fábrica.

Você pode pesquisar o Repositório do Maven para obter uma lista de pacotes que estão disponíveis. Você também pode obter uma lista de pacotes disponíveis de outras fontes. Por exemplo, uma lista completa dos pacotes enviados pela comunidade está disponível em Pacotes do Spark.

Neste artigo, você aprenderá a usar o pacote spark csv com o Jupyter Notebook.

Pré-requisitos

Usar pacotes externos com Jupyter Notebooks

  1. Navegue até https://CLUSTERNAME.azurehdinsight.net/jupyter em que CLUSTERNAME é o nome do cluster do Spark.

  2. Crie um novo bloco de anotações. Selecione Novo e depois Spark.

    Create a new Spark Jupyter Notebook.

  3. Um novo bloco de anotações é criado e aberto com o nome Untitled.pynb. Selecione o nome do notebook na parte superior e digite um nome amigável.

    Provide a name for the notebook.

  4. Você usará a mágica %%configure para configurar o notebook para usar um pacote externo. Em blocos de notas que usam pacotes externos, não deixe de chamar a mágica %%configure na primeira célula de código. Isso garante que o kernel está configurado para usar o pacote antes de iniciar a sessão.

    Importante

    Se esquecer de configurar o kernel na primeira célula, você poderá usar %%configure com o parâmetro -f, mas isso reiniciará a sessão e todo o progresso será perdido.

    Versão do HDInsight Comando
    Para HDInsight 3.5 e HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    Para HDInsight 3.3 e HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. O snippet de código acima espera as coordenadas do maven para o pacote externo no Repositório Central do Maven. Nesse snippet de código, com.databricks:spark-csv_2.11:1.5.0 é a coordenada do maven para o pacote spark-csv. Veja como você constrói as coordenadas de um pacote.

    a. Localize o pacote no Repositório Maven. Para este artigo, usamos spark-csv.

    b. No repositório, colete os valores para GroupId, ArtifactId e Version. Certifique-se de que os valores que você coletar correspondam ao cluster. Nesse caso, estamos usando um pacote de Spark 1.5.0 e Scala 2.11, mas talvez seja necessário selecionar versões diferentes para a versão apropriada do Spark ou do Scala no cluster. Você pode encontrar a versão do Scala no cluster executando scala.util.Properties.versionString no kernel Jupyter do Spark ou em Spark submit. Para encontrar a versão do Spark no cluster, execute sc.version em Notebooks Jupyter.

    Use external packages with Jupyter Notebook.

    c. Concatene os três valores, separados por dois pontos (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Execute a célula de código com a mágica %%configure . Isso irá configurar a sessão Livy subjacente para usar o pacote fornecido. Nas células subsequentes no bloco de notas, você agora pode usar o pacote conforme mostrado abaixo.

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

    Para o HDInsight 3.4 e anterior, você deve usar o snippet abaixo.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. Você pode executar os snippets de código, como mostrado abaixo, para exibir os dados do dataframe que você criou na etapa anterior.

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

Confira também

Cenários

Criar e executar aplicativos

Ferramentas e extensões

Gerenciar recursos