Databricks display()函数与Jupyter等效或替代

时间:2017-09-08 23:11:58

标签: apache-spark jupyter-notebook databricks

我正在将当前的DataBricks Spark笔记本迁移到Jupyter笔记本,DataBricks提供了方便而美观的显示(data_frame)功能,可以直观地显示Spark数据帧和RDD,但Jupyter没有直接的等价物(我不确定)但我认为它是一个DataBricks特定功能),我试过:

dataframe.show()

但它是它的文本版本,当你有很多列时它会破坏,所以我试图找到一个替代display(),它可以渲染Spark数据帧比show()函数更好。有没有相同或替代品?

4 个答案:

答案 0 :(得分:2)

在最近的IPython中,如果df是熊猫数据帧,你可以使用display(df),它就可以了。在旧版本上,您可能需要执行from IPython.display import display。如果单元格的最后一个表达式的结果是data_frame,它也会自动显示。例如this notebook。当然,表示将取决于您用于创建数据帧的库。如果您使用PySpark并且默认情况下它没有定义好的表示,那么您将需要教IPython如何显示Spark DataFrame。例如here是一个教授IPython如何显示Spark上下文和Spark Sessions的项目。

答案 1 :(得分:1)

尝试Apache Zeppelin(https://zeppelin.apache.org/)。有一些很好的标准数据帧可视化,特别是如果你使用{{1}}解释器。此外,还支持其他有用的口译员。

答案 2 :(得分:1)

第一个建议:当你使用Jupyter时,不要使用df.show()代替使用df.limit(10).toPandas().head(),这样可以更好地展示更好的Databricks display()

第二项建议: 齐柏林笔记本。只需使用z.show(df.limit(10))

即可

另外在Zeppelin;

  1. 您将数据框注册为SQL表df.createOrReplaceTempView('tableName')
  2. 插入以%sql开头的新段落,然后以惊人的显示方式查询您的表格。

答案 3 :(得分:1)

使用Jupyter时,请使用myDF.limit(10).toPandas()。head()而不是df.show()。而且,有时,我们正在处理多列,这会截断视图。 因此,只需将您的Pandas视图列配置设置为最大值即可。

# Alternative to Databricks display function.
import pandas as PD
pd.set_option('max_columns', None)

myDF.limit(10).toPandas().head() enter image description here