使用 Spark Streaming 从 Kafka 主题读取 Json 数据。
我使用 DataFrame 来处理数据,稍后我希望将输出保存到 HDFS 文件。问题是使用:
df.write.save("append").format("text")
产生许多文件,有些文件很大,有些甚至是 0 字节。
有没有办法控制输出文件的数量?另外,为了避免“相反”的问题,是否有办法限制每个文件的大小,以便当当前达到一定大小/行数时将写入新文件?
输出文件的数量等于分区的数量Dataset
这意味着您可以根据上下文通过多种方式控制它:
- For
Datasets
没有广泛的依赖性,您可以使用阅读器特定参数控制输入
- For
Datasets
具有广泛的依赖性,您可以控制分区的数量spark.sql.shuffle.partitions
范围。
- 与血统无关,你可以
coalesce
or repartition
.
有没有办法也限制每个文件的大小,以便当当前达到一定大小/行数时将写入新文件?
不会。对于内置编写器来说,这是严格的 1:1 关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)