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

标签 scala apache-spark hdfs avro

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

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

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

最佳答案

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

关于scala - 配置 Spark 写入 HDFS 的 Avro 文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610882/

相关文章:

scala - 如何优化 spark 函数以将 double 值舍入为 2 位小数?

scala - 如何向 Java 提供 Scala 伴随对象的类?

java - 将 Spring 与 Spark 一起使用

apache-spark - Spark 结构化流式传输具有独特消息模式的多个 Kafka 主题

scala - 在类路径中找不到或忽略 log4j.properties 文件

hadoop - Flume: kafka channel 和 hdfs sink get unable to deliver event 错误

scala - 如何使用条件为每个组生成新的列值

scala - 如何通过子序列拆分序列?

scala - java.lang.ClassCastException : org. apache.avro.generic.GenericData$Record 无法转换为 packagename.MyRecord

hadoop - 如何在单个 Hadoop 节点上写入多条记录