有没有办法在达到文件大小限制时强制自定义数据源启动新文件?

时间:2019-04-16 12:39:45

标签: java scala apache-spark

我们正在Spark中构建一个工具,以处理TB级的交易数据并生成JSON报告。很难限制任何单个JSON文件的大小,以及其他有关JSON的特定要求。为了满足JSON格式要求,我们构建了一个自定义DataSource类(该类扩展了Spark附带的JsonFileFormat)。

但是,我找不到任何文档或API规范来指定文件创建或文件大小限制。似乎所有这些工作都在我无法控制的水平下进行管理。

是真的吗?如果不是,是否有人知道文件达到特定大小后如何拆分?

Dataset<Row> dataframe = ...

dataframe.write()
  .format('com.company.custom.datasource')
  .options(...)
  .save('hdfs://host:port/path/to/directory');

理想情况下,我们有一个写程序将分区数据保存到JSON格式的文件中,但是一旦我们击中一定数量的字节,它将关闭该文件,并开始一个新的文件。即使处理相同的分区。

或者,如果有某种方法可以知道分区中有多少字节,我们可以提前重新分区。

0 个答案:

没有答案