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

如何通过Parquet文件结构判断是分区文件还是独立文件(Databricks+ADLS Gen2)

关于ADLS Gen2中Parquet文件结构的判断与Databricks读取说明

结构本质解读

你给出的entity/year/month/day/层级是目录式数据分区结构,目录下的part-*.snappy.parquet是同一个逻辑数据集的分片文件,并非独立文件。整个day目录下的所有part-开头文件属于同一份完整数据集,配合_success、_committed、_started这些文件来看,这是一次Spark分布式写入作业的产物:

  • _success:标记本次写入作业成功完成
  • _committed/_started:记录Spark作业的提交、启动元数据
  • part-*.snappy.parquet:因分布式写入被拆分的数据分片,所有分片共同组成一份完整的数据集,不是各自独立的文件

判断依据

  • 元文件特征:存在_success、_committed这类文件,说明是批量写入的分片结果,而非零散的独立文件
  • 文件命名规则:统一的part-前缀+序号,是Spark等分布式框架写入Parquet时的标准分片命名,这类分片必然属于同一个逻辑数据集
  • 目录分区含义:year/month/day是按时间维度设置的数据分区,每个day目录下的所有part-*文件是该时间分区下的完整数据,并非单个文件的分区

Databricks读取操作

在Databricks中,直接读取对应层级目录即可,Spark会自动识别分片文件和分区信息:

# 读取整个entity目录,自动识别year/month/day作为分区列
df = spark.read.parquet("/mnt/adls/entity")

# 读取指定日期的分区数据
df = spark.read.parquet("/mnt/adls/entity/year=2024/month=05/day=20")

读取后Spark会自动合并所有part-*分片为一个DataFrame,同时如果是分区写入的场景,year、month、day会自动作为列添加到DataFrame中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:47:13