查看来源:fast-parquet-row-count-in-spark和 parquet-count-metadata-explanation
Stackoverflow 和 Spark 官方文档告诉我们 parquet 文件应该在元数据中包含行数
。 Spark从1.6开始默认添加了这个
我试图看到这个“字段”,但没有运气。也许我做错了什么?有人可以告诉我如何确保某些 Parquet 文件具有此类归档吗?欢迎任何小而优质的 Parquet 文件的链接!现在,我使用参数 meta D:\myparquet_file.parquet
调用 org.apache.parquet.tools.Main
,但没有看到 count
关键字在结果中。
最佳答案
您可以使用 parquet-tools 检查 Parquet 文件:
- 安装
parquet-tools
:
pip install parquet-tools
- 创建 Parquet 文件。我使用 Spark 创建了一个包含 3 行的小型 Parquet 文件:
import spark.implicits._
val df: DataFrame = Seq((1, 2, 3), (4, 5, 6), (7, 8, 9)).toDF("col1", "col2", "col3")
df.coalesce(1).write.parquet("data/")
- 检查 Parquet 文件:
parquet-tools inspect /path/to/parquet/file
输出应该类似于:
############ file meta data ############
created_by: parquet-mr version 1.10.1 (build a89df8f9932b6ef6633d06069e50c9b7970bebd1)
num_columns: 3
num_rows: 3
num_row_groups: 1
format_version: 1.0
serialized_size: 654
############ Columns ############
col1
col2
col3
############ Column(col1) ############
name: col1
path: col1
max_definition_level: 0
max_repetition_level: 0
physical_type: INT32
logical_type: None
converted_type (legacy): NONE
############ Column(col2) ############
name: col2
path: col2
max_definition_level: 0
max_repetition_level: 0
physical_type: INT32
logical_type: None
converted_type (legacy): NONE
############ Column(col3) ############
name: col3
path: col3
max_definition_level: 0
max_repetition_level: 0
physical_type: INT32
logical_type: None
converted_type (legacy): NONE
您可以在 file meta data
下看到节num_rows
表示 parquet 文件中行数的字段。
关于scala - 如何确保 Parquet 文件包含元数据中的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70351129/