为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼如林 2021-11-09 20:30:14
我试图在 Jupyter Notebook 中将 PySpark 数据框显示为 HTML 表,但所有方法似乎都失败了。使用此方法显示一个文本格式的表格:import pandasdf.toPandas()使用此方法将 HTML 表显示为字符串:df.toPandas().to_html()这会打印出更漂亮的未解析的 HTML,但它不会解析为表格:print(df.toPandas().to_html())而且,所有这些from IPython.display import display, HTMLHTML(df.toPandas().to_html())print(HTML(df.toPandas().to_html()))display(HTML(df.toPandas().to_html()))只需打印此对象描述:<IPython.core.display.HTML object>我可以尝试其他任何想法吗?
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我在 AWS EMR 集群上的 JupyterLab 笔记本中使用 PySpark 内核时遇到了这个问题。我发现 sparkmagic 命令%%display解决了这个问题。例如,我的 Jupyter 单元看起来像 -

%%display
some_spark_df

还值得指出的是,如果%%display和 变量之间有空行,则会出错。

但是我不确定如何对熊猫数据框做同样的事情。使用 PySpark 内核时仍然返回对象描述(与纯 Python3 内核相反)


查看完整回答
反对 回复 2021-11-09
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

所以 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, HTML

from pyspark.sql.functions import *


def printDf(sprkDF,records): 

    return HTML(sprkDF.limit(records).toPandas().to_html())


#printDf(df,10)

希望这可以帮助。


查看完整回答
反对 回复 2021-11-09
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

也许您正在寻找的是这样的东西,它以表格格式打印输出 df:


import pandas

df.toPandas().to_html(index=False,col_space="40px", classes=('table', 'table-striped'))


查看完整回答
反对 回复 2021-11-09
  • 3 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信