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
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 № 1Każ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%.