java - spark中的分区数和任务数
问题描述
我正在执行一项阅读 2 个 zip 文件的工作
JavaPairRDD<String, PortableDataStream> zipFilesRdd = sc.binaryFiles("*.zip"));
有时分区大小为 2,有时为 1。
使用 flatmap 函数,我正在创建一个文档列表(zip 文件的所有条目),我将其转换为数据框。重新分区后,此数据帧的分区大小为 16:
Column column = new Column("applicationYear");
int numberOfPartitions = (int) dataFrame.select("applicationYear").distinct().count();
Dataset<Row> applicationYear = dataFrame.repartition(numberOfPartitions, column);
有 19 个分区,所需的分区数。但是,总是有 255 个任务开始于:
Dataset<String> keys = applicationYear.map(new MapPostProcessLoadVendor(), Encoders.STRING());
keys.collect();
为什么忽略数据帧的分区数(有和没有重新分区)?在 zipFilesRdd 的情况下,使用从 1 到 2 的重新分区。
spark-3.1.1,一个 postgres 数据库。
解决方案
推荐阅读
- bash - VS Code:使用 WSL/Bash 运行任务
- angular - 三态复选框的支持字段被(重新)评估得太频繁
- date - 如何在 Elastic Search 中对日期属性进行全文查询
- c - 如何在C中清空字符串的静态数组
- java - 如何获得对处理当前请求的端点方法的引用(不是当前方法)
- python - sqlalchemy:'metadata.drop_all' 不起作用
- swift - 更新 Firebase ChildByAutoID
- azure - 将 JSON 文件导入 Azure 数据库
- json - 在 laravel Blade 中获取 Json 信息
- python - Apache Beam - Python - 读取文件