/ / Jak uzyskać ciągłość kontekstu między sąsiadującymi komórkami Zeppelin - Apache-Spark, Apache-Zeppelin

Jak uzyskać ciągłość kontekstu pomiędzy sąsiednimi komórkami Zeppelina - iskrą apache, apache-zeppelin

Jak widać poniżej zeppelin notebook mamy dwie komórki:

  • Pierwsza komórka wykonuje operację i zapisuje wynik w out zmienna
  • Druga komórka próbuje wykonać operację na out zmienna. Zamiast tego występuje błąd wskazujący, że komórka nawet nie zdaje sobie sprawy, że powinien to być pyspark

wprowadź opis obrazu tutaj

Tak nie lubię jupyter/ipython notebook - wydaje się, że Zeppelin nie ma ciągłościmiędzy komórkami: każda komórka jest całkowicie niezależna? To poważnie ogranicza: chcemy podzielić pracę na części i uruchamiać je pojedynczo ... jak w Jupyter ..

Więc brakuje mi czegoś o tym, jak „połączyć” komórki ze sobą?

Odpowiedzi:

2 dla odpowiedzi № 1

Każdy akapit (taki sam jak komórka w jupyter) może korzystać z innej technologii. Są one obsługiwane w Zeppelin zwanym intepreter. Z tego powodu Zeppelin jest przekonujący.

Załóżmy, że ten przypadek użycia.

  • Opisz notebooka za pomocą Markdown

  • Przygotuj dane za pomocą Shell, jak curl, cp

  • Analizuj za pomocą Spark

  • Niektórzy analizują za pomocą SQL za pomocą Spark z tabelą temp

  • Opublikuj plik wynikowy za pomocą Shell

Zakres

Środowisko jest współdzielone bezpośrednio przez ten sam interpreter w tym samym notatniku. Co znaczy.

w PODOBNIE rodzaj interpretera, zmienne / metoda / klasy zdefiniowane w jednym akapicie MOGĄ być używane przez akapity wykonane później. Nie musi być fizycznie później, wystarczy go wykonać później.

w RÓŻNE rodzaj interpretera, zmienne / metoda / klasy zdefiniowane w jednym akapicie NIE MOŻE być używane przez akapity wykonane później.

Pomiędzy różnymi tłumaczami zmienne / metoda / klasy nie są bezpośrednio widoczne. Backend Angular API może służyć do przekazywania między różnymi tłumaczami.

Między Spark i Pyspark tabele tymczasowe są dla siebie widoczne.

Domyślny tłumacz.

  • Jeden notatnik może mieć jednego domyślnego tłumacza.
  • Inny interpreter, który ma zostać użyty, musi wyraźnie używać notacji%.

Przykład

Oto przykład. wprowadź opis obrazu tutaj