Udostępnij za pośrednictwem


Używanie pakietów zewnętrznych z notesami Jupyter Notebook w klastrach Apache Spark w usłudze HDInsight

Dowiedz się, jak skonfigurować notes Jupyter w klastrze Apache Spark w usłudze HDInsight, aby używać zewnętrznych, współtworowanych przez społeczność pakietów apache maven , które nie są dołączone do gotowego rozwiązania w klastrze.

Możesz wyszukać pełną listę dostępnych pakietów w repozytorium Maven. Możesz również uzyskać listę dostępnych pakietów z innych źródeł. Na przykład pełna lista pakietów współtworzynych przez społeczność jest dostępna w temacie Pakiety Spark.

W tym artykule dowiesz się, jak używać pakietu spark-csv z notesem Jupyter Notebook.

Wymagania wstępne

Używanie pakietów zewnętrznych z notesami Jupyter Notebook

  1. Przejdź do lokalizacji, w https://CLUSTERNAME.azurehdinsight.net/jupyter której CLUSTERNAME znajduje się nazwa klastra Spark.

  2. Utwórz nowy notes. Wybierz pozycję Nowy, a następnie wybierz pozycję Spark.

    Create a new Spark Jupyter Notebook.

  3. Zostanie utworzony i otwarty nowy notes o nazwie Untitled.pynb. Wybierz nazwę notesu u góry i wprowadź przyjazną nazwę.

    Provide a name for the notebook.

  4. Użyjesz %%configure magii, aby skonfigurować notes do korzystania z pakietu zewnętrznego. W notesach korzystających z pakietów zewnętrznych upewnij się, że wywołasz magię %%configure w pierwszej komórce kodu. Gwarantuje to, że jądro jest skonfigurowane do używania pakietu przed rozpoczęciem sesji.

    Ważne

    Jeśli zapomnisz skonfigurować jądro w pierwszej komórce, możesz użyć %%configure parametru z parametrem -f , ale spowoduje to ponowne uruchomienie sesji i cały postęp zostanie utracony.

    Wersja usługi HDInsight Polecenie
    W przypadku usług HDInsight 3.5 i HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    W przypadku usług HDInsight 3.3 i HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. Powyższy fragment kodu oczekuje współrzędnych maven dla pakietu zewnętrznego w repozytorium centralnym maven. W tym fragmencie com.databricks:spark-csv_2.11:1.5.0 kodu jest współrzędną maven dla pakietu spark-csv . Poniżej przedstawiono sposób konstruowania współrzędnych dla pakietu.

    a. Znajdź pakiet w repozytorium Maven. W tym artykule użyjemy pliku spark-csv.

    b. Z repozytorium zbierz wartości GroupId, ArtifactId i Version. Upewnij się, że zebrane wartości są zgodne z klastrem. W takim przypadku używamy pakietu Scala 2.11 i Spark 1.5.0, ale może być konieczne wybranie różnych wersji dla odpowiedniej wersji języka Scala lub Spark w klastrze. Wersję języka Scala w klastrze można znaleźć, uruchamiając jądro scala.util.Properties.versionString Spark Jupyter lub przesyłając na platformie Spark. Wersję platformy Spark w klastrze można znaleźć, uruchamiając polecenie sc.version w notesach Jupyter Notebook.

    Use external packages with Jupyter Notebook.

    c. Połącz trzy wartości rozdzielone dwukropkiem (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Uruchom komórkę kodu za pomocą magii %%configure . Spowoduje to skonfigurowanie bazowej sesji usługi Livy do korzystania z podanego pakietu. W kolejnych komórkach w notesie można teraz użyć pakietu, jak pokazano poniżej.

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

    W przypadku usługi HDInsight 3.4 lub starszej należy użyć poniższego fragmentu kodu.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. Następnie możesz uruchomić fragmenty kodu, jak pokazano poniżej, aby wyświetlić dane z ramki danych utworzonej w poprzednim kroku.

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

Zobacz też

Scenariusze

Tworzenie i uruchamianie aplikacji

Narzędzia i rozszerzenia

Zarządzanie zasobami