先以RewriteDataFilesSparkAction为例
三个预备动作,再Client中执行?不满足就停止?
- 规划文件
- 过滤文件
生成文件组
执行重写逻辑 rewriteFiles�通过SparkSession�#�format(“iceberg”)�去重写一个新文件
Spark存储过程拼接点
RewriteDataFilesSparkAction�#execute
会通过#planFileGroups�给每个分区的文件分组
以BinPack举例
BinPackStrategy�#selectFilesToRewrite�
BinPackStrategy#planFileGroups�
单个文件扫描
DataTableScan�#planFiles� 规划文件
一个文件对应一个 FileScanTask�
Iceberg与Spark拼接点
public class IcebergSource implements DataSourceRegister, SupportsCatalogOptions �
Scala/Java代码执行入口
SparkActions�