如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe
Posted
技术标签:
【中文标题】如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe【英文标题】:How to print Pyspark Dataframe like pandas Dataframe in jupyter 【发布时间】:2019-05-12 05:36:21 【问题描述】:当我使用df.show()
在 jupyter notebook 中查看 pyspark 数据框时
它告诉我:
+---+-------+-------+-------+------+-----------+-----+-------------+-----+---------+----------+-----+-----------+-----------+--------+---------+-------+------------+---------+------------+---------+---------------+------------+---------------+---------+------------+
| Id|groupId|matchId|assists|boosts|damageDealt|DBNOs|headshotKills|heals|killPlace|killPoints|kills|killStreaks|longestKill|maxPlace|numGroups|revives|rideDistance|roadKills|swimDistance|teamKills|vehicleDestroys|walkDistance|weaponsAcquired|winPoints|winPlacePerc|
+---+-------+-------+-------+------+-----------+-----+-------------+-----+---------+----------+-----+-----------+-----------+--------+---------+-------+------------+---------+------------+---------+---------------+------------+---------------+---------+------------+
| 0| 24| 0| 0| 5| 247.3000| 2| 0| 4| 17| 1050| 2| 1| 65.3200| 29| 28| 1| 591.3000| 0| 0.0000| 0| 0| 782.4000| 4| 1458| 0.8571|
| 1| 440875| 1| 1| 0| 37.6500| 1| 1| 0| 45| 1072| 1| 1| 13.5500| 26| 23| 0| 0.0000| 0| 0.0000| 0| 0| 119.6000| 3| 1511| 0.0400|
| 2| 878242| 2| 0| 1| 93.7300| 1| 0| 2| 54| 1404| 0| 0| 0.0000| 28| 28| 1| 0.0000| 0| 0.0000| 0| 0| 3248.0000| 5| 1583| 0.7407|
| 3|1319841| 3| 0| 0| 95.8800| 0| 0| 0| 86| 1069| 0| 0| 0.0000| 97| 94| 0| 0.0000| 0| 0.0000| 0| 0| 21.4900| 1| 1489| 0.1146|
| 4|1757883| 4| 0| 1| 0.0000| 0| 0| 1| 58| 1034| 0| 0| 0.0000| 47|
我怎样才能像 pandas 数据框一样获得格式化的数据框,以更有效地查看数据
【问题讨论】:
Show DataFrame as table in iPython Notebook的可能重复 您可以将spark
数据帧转换为pandas
数据帧,但如果结果数据帧太大,则会产生内存开销。您可以在此处查看show
的文档spark.apache.org/docs/latest/api/python/…
【参考方案1】:
您可以使用将 pyspark 数据帧直接转换为 pandas 数据帧的功能。相同的命令是 -
df.limit(10).toPandas()
这应该直接产生作为熊猫数据框的结果,您只需要安装熊猫包。
【讨论】:
【参考方案2】:你必须使用下面的代码
from IPython.display import display
import pandas as pd
import numpy as np
d = 'col1': [1, 2], 'col2': [3, 4]
df = pd.DataFrame(data=d)
display(df)
【讨论】:
这没有回答问题。他想以格式化的方式显示 pysparkDataframe
(类似于 pandas DataFrame 的显示方式)。注意 pandas 和 pyspark
DatFrame 的不一样!
所以当 Pyspark 使用 jupyter notebook 时,上面提到的代码也是正确的
感谢您的分析。但是当我使用 Pyspark Dataframe show() 时,显示不起作用。
这个答案很好用。不要调用df.show().display
,而是(如答案所示)改为调用display(df)
。它适用于 Pandas 或 Spark DataFrame。以上是关于如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe的主要内容,如果未能解决你的问题,请参考以下文章
在使用 jupyter notebook 时如何在 pandas 中使用 Dataframe 时查看完整数据? [复制]
iPython/Jupyter Notebook 和 Pandas,如何在 for 循环中绘制多个图?
如何在 pandas 和 Jupyter Notebook 中创建带有可点击超链接的表格