2017-07-06 8 views
6

Używam Spark 2 i Scala 2.11 w notatniku Zeppelin 0.7. Mam dataframe że mogę wydrukować tak:Jak mogę wydrukować ramkę danych w Zeppelin/Spark/Scala?

dfLemma.select("text", "lemma").show(20,false) 

a wyjście wygląda następująco:

+---------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
|text                              |lemma                                         | 
+---------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
|RT @Dope_Promo: When you and your crew beat your high scores on FUGLY FROG https://time.com/Sxp3Onz1w8     |[rt, @dope_promo, :, when, you, and, you, crew, beat, you, high, score, on, FUGLY, FROG, https://time.com/sxp3onz1w8]              | 
|RT @axolROSE: Did yall just call Kermit the frog a lizard? https://time.com/wDAEAEr1Ay          |[rt, @axolrose, :, do, yall, just, call, Kermit, the, frog, a, lizard, ?, https://time.com/wdaeaer1ay]                  | 

Próbuję zrobić wyjście ładniejszy w Zeppelin, przez:

val printcols= dfLemma.select("text", "lemma") 
println("%table " + printcols) 

, która daje tę wydajność:

printcols: org.apache.spark.sql.DataFrame = [text: string, lemma: array<string>] 

oraz nowy pusty Zeppelin ustęp czele

[text: string, lemma: array] 

Czy istnieje sposób uzyskiwania dataframe aby pokazać jak ładnie sformatowany tabeli? TIA!

Odpowiedz

16

W Zeppelin można użyć z.show(df), aby pokazać ładny stół. Oto przykład:

val df = Seq(
    (1,1,1), (2,2,2), (3,3,3) 
).toDF("first_column", "second_column", "third_column") 

z.show(df) 

enter image description here

+0

Nicea. Nie zdając sobie z tego sprawy, napisałem własną, ładną funkcję drukowania (wykorzystującą ''% table'') dla pyspark. Nie mogę tego znaleźć nigdzie w dokumentacji, jednak ... –

+1

@ TwUxTLi51Nus To prawda, że ​​dokumenty nie są zbyt dobre dla tej części. Możesz znaleźć informacje o ZeppelinContext [tutaj] (https://zeppelin.apache.org/docs/latest/interpreter/spark.html#zeppelincontext) oraz w kodzie ([tutaj] (https://github.com /apache/zeppelin/blob/branch-0.7/spark/src/main/java/org/apache/zeppelin/spark/ZeppelinContext.java)) możesz zobaczyć wszystkie dostępne funkcje. Ponadto w notesie można sprawdzić, używając ctrl + spacja w zmiennej z. –

+0

Ctrl + Spacja nie działa dla mnie, jednak (w python) '' dir (z) '' does. –

Powiązane problemy