【问题标题】:How can I pretty print a data frame in Zeppelin/Spark/Scala?如何在 Zeppelin/Spark/Scala 中漂亮地打印数据框?
【发布时间】:2017-12-10 07:49:30
【问题描述】:

我在 Zeppelin 0.7 笔记本中使用 Spark 2 和 Scala 2.11。我有一个可以像这样打印的数据框:

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>]

还有一个新的空白 Zeppelin 段落标题

[text: string, lemma: array]

有没有办法让数据框显示为格式良好的表格? 蒂亚!

【问题讨论】:

    标签: scala apache-spark apache-zeppelin


    【解决方案1】:

    在 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)
    

    【讨论】:

    • 不错。由于没有意识到这一点,我为 pyspark 编写了自己的漂亮打印函数(利用 %table)。我在文档中的任何地方都找不到这个,但是......
    • @TwUxTLi51Nus 确实文档对于这部分不是很好。您可以找到有关 ZeppelinContext here 的一些信息,并在代码 (here) 中查看所有可用功能。此外,在笔记本中,您可以在 z 变量上使用 ctrl+space 进行检查。
    • ctrl + space 对我不起作用,但是(在 python 中)dir(z) 可以。
    • @schoon 不客气!您可以使用第二个参数限制行数:z.show(df, 10)
    • 我总能找到更复杂的方法。我这样做了:z.show(dfLemma.select("racist", "lemma").limit(20))。会试试你的。
    【解决方案2】:

    我知道这是一个旧线程,但以防万一它有帮助......

    下面是我可以展示df 的一部分的唯一方法。尝试按照 cmets 中的建议向 .show() 添加第二个参数会引发错误。

    z.show(df.limit(10))

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 2018-05-10
      • 1970-01-01
      • 2013-09-02
      • 2019-02-12
      • 2019-11-22
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      相关资源
      最近更新 更多