在 Juypyter Notebook 中将 PySpark 数据框显示为 HTML 表格

我试图在 Jupyter Notebook 中将 PySpark 数据框显示为 HTML 表,但所有方法似乎都失败了。


使用此方法显示一个文本格式的表格:


import pandas

df.toPandas()

使用此方法将 HTML 表显示为字符串:


df.toPandas().to_html()

这会打印出更漂亮的未解析的 HTML,但它不会解析为表格:


print(df.toPandas().to_html())

而且,所有这些


from IPython.display import display, HTML


HTML(df.toPandas().to_html())

print(HTML(df.toPandas().to_html()))

display(HTML(df.toPandas().to_html()))

只需打印此对象描述:


<IPython.core.display.HTML object>

我可以尝试其他任何想法吗?


呼如林
浏览 282回答 3
3回答

慕婉清6462132

我在 AWS EMR 集群上的 JupyterLab 笔记本中使用 PySpark 内核时遇到了这个问题。我发现 sparkmagic 命令%%display解决了这个问题。例如,我的 Jupyter 单元看起来像 -%%display some_spark_df还值得指出的是,如果%%display和 变量之间有空行,则会出错。但是我不确定如何对熊猫数据框做同样的事情。使用 PySpark 内核时仍然返回对象描述(与纯 Python3 内核相反)

qq_遁去的一_1

所以 df.toPandas() 确实将数据帧呈现为 html 对象,但我的假设是您正在寻找其他东西或试图摆脱省略号 (...)。您可以在之前配置 pandas 来解决这些问题,这就是我用来解决列、行和字段级别截断的方法;pd.set_option('display.max_colwidth', -1)pd.set_option('display.max_rows', 500)pd.set_option('display.max_columns',500)你也可以使用上面的方法,但你有点乱,这是我使用的一个快速的小 udf;from IPython.display import display, HTMLfrom pyspark.sql.functions import *def printDf(sprkDF,records):&nbsp;&nbsp; &nbsp; return HTML(sprkDF.limit(records).toPandas().to_html())#printDf(df,10)希望这可以帮助。

蛊毒传说

也许您正在寻找的是这样的东西,它以表格格式打印输出 df:import pandasdf.toPandas().to_html(index=False,col_space="40px", classes=('table', 'table-striped'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python