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

如何在Python中读取并打印Spark输出的CSV格式文件夹内容?

解决Spark输出CSV文件夹的读取问题

Spark输出CSV时默认会生成包含元文件和分片数据文件的文件夹,你可以根据自身环境选择以下两种读取方案:

方案1:使用PySpark读取(推荐,无需处理分片逻辑)

如果你本地配置了PySpark环境,可直接读取整个输出文件夹,Spark会自动跳过元数据文件、合并所有分片数据:

from pyspark.sql import SparkSession

# 初始化SparkSession
spark = SparkSession.builder.appName("read_csv_output").getOrCreate()

# 读取整个output文件夹,可根据需要加header=True、sep=','等参数
df = spark.read.csv("/path/to/your/output", header=True)

# 打印内容
df.show()

方案2:无Spark环境,用原生Python读取

需要手动过滤_SUCCESS等元文件,只读取所有以part-开头的数据分片文件:

import os

output_dir = "/path/to/your/output"
# 遍历目录下所有文件,过滤出数据分片
part_files = [f for f in os.listdir(output_dir) if f.startswith("part-")]

for file_name in part_files:
    file_path = os.path.join(output_dir, file_name)
    with open(file_path, "r", encoding="utf-8") as f:
        print(f.read())

方案3:无Spark环境,用Pandas读取合并

如果需要将内容转为DataFrame处理,可以用pandas逐个读取分片后合并:

import os
import pandas as pd

output_dir = "/path/to/your/output"
part_files = [f for f in os.listdir(output_dir) if f.startswith("part-")]
df_list = []

for file_name in part_files:
    file_path = os.path.join(output_dir, file_name)
    # 可根据实际CSV格式调整sep、header等参数
    df_list.append(pd.read_csv(file_path))

# 合并所有分片
full_df = pd.concat(df_list, ignore_index=True)
# 打印内容
print(full_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:06:03