FAQ-spark任务生成的hdfs文件名称,带后缀gz.parquet

    问题描述/异常栈

    spark任务向表写入数据,对应hdfs的文件后缀名称带gz.parquet

    FAQ-spark任务生成的hdfs文件名称,带后缀gz.parquet - 图1

    发现版本

    spark 3.3

    问题原因

    写入文件不同模式,文件名称不同

    1、Data Source 模式写入文件时,文件名带 .. 后缀,如

    part-00000-740e0249-c090-4240-90ed-b4e170dd8899-c000.snappy.parquet

    2、Hive SerDe 模式写入文件时,开源版本文件名不带 .. 后缀,如

    part-00000-5a481e57-caf3-471c-9cf3-0ec26e94e7a3-c000

    解决方案

    Parquet 的压缩作用在 Column Chunk 级别,文件名只起标识作用,不影响实际内容的压缩方式

    Spark 3.3.1.17 起可通过配置参数控制启用datasource模式,来决定文件名称是否带后缀

    spark.sql.hive.fileExtensionParquet.enabled=true

    spark.sql.hive.fileExtensionOrc.enabled=true

    具体参考:https://km.netease.com/v4/detail/blog/240615