apache-spark - 如何在 Spark Structured Streaming 中控制输出文件的大小
问题描述
我们正在考虑在一个项目中使用 Spark Structured Streaming。输入和输出是 S3 存储桶上的拼花文件。是否可以以某种方式控制输出文件的大小?我们的目标是输出大小为 10-100MB 的文件。据我了解,在传统的批处理方法中,我们可以通过根据输入数据集的大小调整分区数量来确定输出文件的大小,在结构化流中是否有类似的可能?
解决方案
在 Spark 2.2 或更高版本中,最佳选项是设置spark.sql.files.maxRecordsPerFile
spark.conf.set("spark.sql.files.maxRecordsPerFile", n)
wheren
被调整以反映行的平均大小。
看
- SPARK-18775 -限制每个文件写入的最大记录数。
- apache/spark@354e936187708a404c0349e3d8815a47953123ec
推荐阅读
- django - 独立的 REST API 和独立的 React SPA 与 Django 和 React 的结合
- c++ - Windows 上的“C.UTF-8”C++ 语言环境?
- sql - SQL 查询仅连接一次表行以将付款与发票匹配
- sql - 如何使用 SQL 在 Sybase ASE 中获取列的类型
- javascript - 如何使可拖动的可排序列表在拖动时显示其他内容?
- pandas - 熊猫数据框到 coo 矩阵和 lil matix
- html - 基于网络的 Gmail 显示连续的空白但不打印
- java - Eclipse Formatter - 忽略 if 条件中的内容
- html - 按钮与文本区域不在同一行
- scala - 如何在数据块中展开数据框模式