配置 Spark 写入 HDFS 的 Avro 文件大小

Posted

技术标签:

【中文标题】配置 Spark 写入 HDFS 的 Avro 文件大小【英文标题】:Configure Avro file size written to HDFS by Spark 【发布时间】:2019-04-10 10:57:31 【问题描述】:

我正在将 Avro 格式的 Spark 数据帧写入 HDFS。而且我想拆分大型 Avro 文件,以便它们适合 Hadoop 块大小,同时不会太小。是否有任何数据框或 Hadoop 选项?如何将要写入的文件拆分成更小的文件?

这是我将数据写入 HDFS 的方式:

dataDF.write
  .format("avro")
  .option("avroSchema",parseAvroSchemaFromFile("/avro-data-schema.json"))
      .toString)
  .save(dataDir)

【问题讨论】:

【参考方案1】:

我进行了很多研究,发现仅在 Avro 记录的数量上设置文件大小限制是不可能的。所以唯一的解决方案是创建一个应用程序来将记录数映射到文件大小。

【讨论】:

以上是关于配置 Spark 写入 HDFS 的 Avro 文件大小的主要内容,如果未能解决你的问题,请参考以下文章

HDFS 中的 Avro 模式生成

如何在 jupyter notebook 中将 spark 数据帧写入 avro 文件格式?

databricks avro 架构无法转换为 Spark SQL 结构类型

Spark:写入 Avro 文件

在 Spark 2.0 中从 AVRO 写入镶木地板时出现 NullPointerException

Spark - 如何将约 20TB 的数据从 DataFrame 写入配置单元表或 hdfs?