如何解决Jupyter Notebook中PySpark DataFrame show()结果换行问题
解决PySpark DataFrame在Jupyter Notebook中show()列过多换行的问题
以下是几种实用的解决办法:
调整
show()方法的参数- 使用
vertical=True参数将每一行数据竖排展示,每列单独占一行,彻底避免横向换行:foo.show(vertical=True) - 如果希望保持横向展示,可通过
truncate参数控制列内容的截断长度(设为False则不截断),同时结合Spark 3.0+支持的max_cols参数指定最大显示列数,超过的列会折叠,鼠标悬停可查看完整内容:foo.show(truncate=False, max_cols=20) - 也可以按需限制显示行数和列数,比如显示前10行、最多15列:
foo.show(n=10, max_cols=15)
- 使用
转换为Pandas DataFrame展示
把PySpark DataFrame转为Pandas DataFrame后,Jupyter会自动适配列宽并提供横向滚动功能,适合数据量不大的场景:foo.limit(10).toPandas()注意:数据量过大时转换会占用较多内存,建议先用
limit()限制行数。查看Schema或筛选部分列
如果只是想了解DataFrame结构,直接用printSchema()查看列名和类型即可:foo.printSchema()若只需查看特定列的数据,用
select()筛选后再调用show():foo.select("col1", "col2", "col3").show(truncate=False)调整Jupyter的显示配置
通过修改IPython的显示参数,扩大输出宽度,避免自动换行:import pandas as pd pd.set_option('display.max_columns', None) pd.set_option('display.width', 1000)之后再转换为Pandas DataFrame展示时,就能获得更宽的显示区域。
内容的提问来源于stack exchange,提问作者Shengxin Huang
相关产品推荐
相关产品推荐

