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

读取分区数据时将文件夹值转为DataFrame列的方法

读取多文件夹Parquet并添加anomesdia列的解决方案

用Pandas处理(小数据量场景)

遍历所有目标文件夹,读取文件时从文件夹名里提取anomesdia的值,添加为新列后合并所有数据:

import pandas as pd
import os
from glob import glob

# 替换成你的根目录(所有anomesdia=xxx文件夹的父目录)
root_dir = "/your/root/path"

# 获取所有anomesdia开头的文件夹路径
folder_list = glob(os.path.join(root_dir, "anomesdia=*"))

df_list = []
for folder_path in folder_list:
    # 从文件夹名拆分出anomesdia的值
    anomesdia = folder_path.split("=")[-1]
    # 读取当前文件夹下的所有Parquet文件
    temp_df = pd.read_parquet(folder_path)
    # 添加新列
    temp_df["anomesdia"] = anomesdia
    df_list.append(temp_df)

# 合并所有数据框
final_df = pd.concat(df_list, ignore_index=True)

用PySpark处理(大数据量场景)

Spark原生支持识别key=value格式的分区文件夹,读取时会自动把分区键作为列加入DataFrame,无需手动提取:

from pyspark.sql import SparkSession

# 初始化Spark会话
spark = SparkSession.builder.appName("ParquetPartitionRead").getOrCreate()

# 直接读取根目录,Spark会自动识别anomesdia作为分区列
final_df = spark.read.parquet("/your/root/path")

# 验证结果
final_df.show()

注意点

  • Pandas适合小数据量,数据加载到内存处理;PySpark适合大数据量,分布式处理更高效。
  • 确保文件夹命名严格是anomesdia=YYYYMMDD格式,这样不管哪种方法都能准确提取值。

内容的提问来源于stack exchange,提问作者Hernandes Matias Junior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:33:17