You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark读取CSV后show()输出含+--+分隔线,如何去除?

解决PySpark df.show()输出中的分隔线问题

df.show()的默认输出是Spark自带的表格格式,那些+--+分隔线是表格边框,和读取CSV时设置的分隔符、编码、inferSchema等参数无关,要去除这些分隔线可以用以下几种方法:

方法1:借助Pandas打印(适合小数据集)

将Spark DataFrame转换为Pandas DataFrame后打印,Pandas的默认输出没有表格边框:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Enem_ETL").getOrCreate()

df = spark.read.format('csv') \
    .option('header', 'true') \
    .option('inferSchema', 'true') \
    .load(r'C:\Users\GRUPO BARBOSA\Documents\Python\Eng Dados\enem\microdados_enem_2021\DADOS\MICRODADOS_ENEM_2021.csv')

# 转换为Pandas并打印无分隔线结果
df.toPandas().print()

注意:此方法会将全量数据拉到Driver节点内存,大数据集可能导致内存溢出。

方法2:自定义控制台输出格式

手动拼接表头和每行数据,用制表符或空格分隔内容:

# 获取表头并打印
headers = df.columns
print("\t".join(headers))

# 遍历每行数据并打印(小数据集适用)
for row in df.collect():
    print("\t".join(map(str, row)))

如果是大数据集,建议限制行数,比如用df.limit(10).collect()只打印前10行,避免内存压力。

方法3:导出为无格式文本文件(适合大数据集)

如果不需要控制台输出,而是要保存无分隔线的文件,可以通过RDD转换后保存:

# 将每行数据转换为制表符分隔的字符串,保存到指定路径
df.rdd.map(lambda x: "\t".join(map(str, x))).saveAsTextFile("C:/你的输出路径")

内容的提问来源于stack exchange,提问作者Gabriel Pedrosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:16:06