Как я могу довольно распечатать фрейм данных в Zeppelin/Spark/Scala?
Я использую Spark 2 и Scala 2.11 в ноутбуке Zeppelin 0.7. У меня есть датафрейм, который я могу напечатать так:
dfLemma.select("text", "lemma").show(20,false)
и вывод выглядит так:
+---------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|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] |
Я пытаюсь сделать вывод лучше в Zeppelin, с помощью:
val printcols= dfLemma.select("text", "lemma")
println("%table " + printcols)
который дает этот вывод:
printcols: org.apache.spark.sql.DataFrame = [text: string, lemma: array<string>]
и новый пустой абзац с цеппелином
[text: string, lemma: array]
Есть ли способ заставить фрейм данных отображаться в виде красиво отформатированной таблицы? ТИА!
3 ответа
В Zeppelin вы можете использовать z.show(df)
показать симпатичный стол. Вот пример:
val df = Seq(
(1,1,1), (2,2,2), (3,3,3)
).toDF("first_column", "second_column", "third_column")
z.show(df)
Я знаю, что это старая ветка, но на всякий случай поможет ...
Приведенный ниже был единственным способом, которым я мог показать часть
df
. Попытка добавить второй параметр в
.show()
как предлагается в комментариях, вызывает ошибку.
z.show(df.limit(10))
Добавление следующей строки в записную книжку добавит горизонтальную полосу прокрутки при использовании.show()
метод. Это похоже на трюк с стилизацией блокнота Jupyter.
%sh echo "%html <style>.text.plainTextContent {white-space: pre;}<style>"