Как я могу довольно распечатать фрейм данных в 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>"

Что-то вроде этого:

Другие вопросы по тегам