我正在将当前的DataBricks Spark笔记本迁移到Jupyter笔记本,DataBricks提供了方便而美观的显示(data_frame)功能,能够可视化Spark Dataframe 和RDD,但Jupyter没有直接的等效功能(我不确定,但我认为这是DataBricks的特定功能),我尝试了:
dataframe.show()
但是它是一个文本版本,当你有很多列的时候,它会断开,所以我试图找到一个替代display()的方法,它可以比show()函数更好地呈现Spark Dataframe 。
6条答案
按热度按时间qnyhuwrf1#
当你使用Jupyter的时候,不要使用df.show(),而要使用myDF.limit(10).toPandas().head()。而且,有时候,我们在处理多个列的时候,它会截断视图。所以只要把你的Pandas视图列配置设置为max。
myDF.limit(10).toPandas().head()
bbuxkriu2#
第一项建议:当您使用Jupyter时,不要使用
df.show()
,而应使用df.limit(10).toPandas().head()
,这样可以获得更好显示效果数据块display()
第二项建议:齐柏林笔记本。只要使用
z.show(df.limit(10))
另外在齐柏林飞艇;
1.将 Dataframe 注册为SQL表
df.createOrReplaceTempView('tableName')
1.插入以
%sql
开头的新段落,然后以惊人的显示效果查询您的表。kadbb4593#
在最近的IPython中,如果df是panda Dataframe ,则可以使用
display(df)
,它会正常工作。在旧版本中,你可能需要执行from IPython.display import display
。如果单元格的最后一个表达式的结果是data_frame,它也会自动显示。例如this notebook。当然,表示方式取决于你用来创建 Dataframe 的库。如果你使用的是PySpark,并且它没有定义一个很好的默认表示,那么你需要教IPython如何显示Spark DataFrame。例如,here是一个教IPython如何显示Spark上下文和Spark会话的项目。hwamh0ep4#
不转换为Pandas Dataframe 。使用此...这将在适当的网格中呈现 Dataframe 。
zz2j4svz5#
您可以设置config
spark.conf.set('spark.sql.repl.eagerEval.enabled', True)
。这将允许显示本地pyspark DataFrame,而无需显式使用df.show(),也无需将DataFrame传输到Pandas,您所需要的只是df
。axzmvihb6#
试试ApacheZeppelin(https://zeppelin.apache.org/),它有一些很好的 Dataframe 的标准可视化,特别是如果你使用
sql
解释器的话,它也支持其他有用的解释器。