2015-10-06 9 views
11

I chcesz dowiedzieć plików csv w Zeppelin i chcieliby skorzystać zapłonie csv pakiet databricks': https://github.com/databricks/spark-csvpliki Reading csv w zeppelin korzystające z zapłonem CSV

W zapłonowej-shell, mogę korzystać z zapłonem CSV z

spark-shell --packages com.databricks:spark-csv_2.11:1.2.0 

Ale w jaki sposób mogę powiedzieć Zeppelinowi o użyciu tej paczki?

Z góry dziękuję!

+2

https://zeppelin.incubator.apache.org/docs/interpreter/spark.html#dependencyloading – zero323

+0

ok, dodano:% dep --packages com.databricks: spark-csv_2.11: 1.2.0 do zeppeling notebooka, ale dał: "Musi być użyty przed zainicjowaniem SparkInterpreter (% iskry)". Nie użyłem% iskry w notebooku jednak: – fabsta

+0

Co z% pyspark lub% sql? – zero323

Odpowiedz

13

Musisz dodać repozytorium pakietów Spark do Zeppelina, zanim będziesz mógł użyć% dep na pakietach iskier.

%dep 
z.reset() 
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven") 
z.load("com.databricks:spark-csv_2.10:1.2.0") 

Ewentualnie, jeśli to jest coś, co chcesz dostępna we wszystkich notebookach, można dodać opcję --packages z ustawieniem zapłonie złożyć polecenie w ustnych config w Zeppelin, a następnie ponownie uruchom tłumacza. Powinno to rozpocząć kontekst z pakietem już załadowanym zgodnie z metodą powłoki iskrowej.

+0

Dzięki, Simon! To działało ładnie. – fabsta

+0

Proste, niesamowite – Anselmo

+1

% dep jest teraz zdeprawowane (0.6.1) ... zobacz odpowiedź Paula (użyj GUI) – Pete

4

UŻYCIEM-Edit

% DEP jest przestarzała Zeppelin 0.6.0. Proszę odnieść się do odpowiedzi Paula-Armanda Verhaegena.

proszę czytać dalej w tej odpowiedzi, jeśli używasz starszej niż 0.6.0 zeppelin

END-Edit

można załadować pakiet zapłonie CSV przy użyciu% dep tłumacza.

jak,

%dep 
z.reset() 

// Add spark-csv package 
z.load("com.databricks:spark-csv_2.10:1.2.0") 

See Zależność sekcja Ładowanie w https://zeppelin.incubator.apache.org/docs/interpreter/spark.html

Jeśli już zainicjowany Spark Kontekst, szybkie rozwiązaniem jest restart Zeppelin i wykonać zeppelin paragraf z powyższym kodem, a następnie wykonać swoje iskrowy kod do odczytu pliku CSV

+0

Gdy próbuję tego, otrzymuję komunikat "error: not found: value% % dep". Pomysły? – fabsta

+0

Nie, ale jakiej wersji Zeppelina używasz? Właśnie zbudowałem go ze źródła i wszystko jest w porządku – sag

+1

Jak wspomniał Pete: dep jest teraz zdeprawowany (0.6.1) ... zobacz odpowiedź Paula (użyj GUI) – conradlee

0

jeśli zdefiniujesz w conf/zeppelin-env.sh

export SPARK_HOME=<PATH_TO_SPARK_DIST> 

Zeppelin będzie wtedy wyglądać w $ SPARK_HOME/conf/zapłonem defaults.conf można zdefiniować słoiki tam:

spark.jars.packages    com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41 

następnie spojrzeć na

http: // zepplin_url: 4040/środowisko/za:

spark.jars file:/root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar,file:/root/.ivy2/jars/org.postgresql_postgresql-9.3-1102-jdbc41.jar

spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41

Dalsze odniesienia: https://zeppelin.incubator.apache.org/docs/0.5.6-incubating/interpreter/spark.html

7
  1. przejdź na zakładkę tłumacz, kliknij repozytorium informacji, dodać repo i ustawić adres URL do http://dl.bintray.com/spark-packages/maven
  2. Przewiń do iskra interpretera pkt i kliknij menu Edycja, zwój w dół do pola artefaktów i dodaj "com.databricks: spark-csv_2.10: 1.2.. 0" lub nowsza wersja Następnie uruchom interpreter pytany
  3. w notebooku, używać coś takiego:.

    import org.apache.spark.sql.SQLContext 
    
    val sqlContext = new SQLContext(sc) 
    val df = sqlContext.read 
        .format("com.databricks.spark.csv") 
        .option("header", "true") // Use first line of all files as header 
        .option("inferSchema", "true") // Automatically infer data types 
        .load("my_data.txt") 
    

Aktualizacja:

Na liście dyskusyjnej użytkownik Zeppelin, to jest teraz (listopad 2016) podany przez Moon Soo Lee (twórca Apache Zeppelin), który użytkownicy wolą zachować% dep, ponieważ pozwala:

  • Self-dokumentacja wymagania dotyczące biblioteki w notatniku;
  • za załadowanie biblioteki (i możliwe na użytkownika).

Tendencja polega obecnie na utrzymaniu% dep, więc nie należy go obecnie uznawać za amortyzowaną.

+0

Nie jestem pewien, co masz na myśli, mówiąc "Utwórz repo". W zakładce tłumacza Zeppelin mogę stworzyć pełne nowe środowisko tłumacza. Dodatkowo, mam adres URL pakietu Spark w polu 'zeppelin.dep.additionalRemoteRepository', więc jak mam dokładnie załadować pakiet CSV? –

+0

@martin Utwórz repozytorium (repozytorium), klikając ikonę koła zębatego po lewej stronie przycisku "Utwórz" (w celu utworzenia zupełnie nowego środowiska tłumacza, którego nie chcesz). Powinno to rozszerzyć listę dostępnych repozytoriów i ujawnić przycisk "+". Kliknij przycisk "+" i dodaj adres URL http://dl.bintray.com/spark-packages/maven. Możesz wtedy po prostu wykonać kroki 2 i 3. Podobnie jak w przypadku innych pytań, normalny jest adres URL w zeppelin.dep.additionalRemoteRepository. Jest to zależność, którą można teraz rozwiązać od czasu dodania repozytorium zewnętrznego w kroku 1. –

0

Innym rozwiązaniem:

W conf/zeppelin-env.sh (znajduje się w/etc/zeppelin dla mnie) dodać linię:

export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0" 

następnie uruchomić usługę.