Scala Spark如何判断DataFrame Schema是否包含另一Schema并返回缺失字段
DataFrame Schema嵌套包含校验方案
核心目标:校验指定的基准DataFrame Schema是否完整覆盖待查找Schema的全部字段,若存在未覆盖的字段则返回所有缺失项。方案同时支持简单扁平Schema、多层嵌套复杂Schema,核心逻辑通过递归函数实现。
示例Schema定义
复杂嵌套基准Schema
val structureSchema = new StructType() .add("name",new StructType() .add("firstname",StringType) .add("middlename",StringType) .add("lastname",StringType)) .add("address",new StructType() .add("current",new StructType() .add("state",StringType) .add("city",StringType)))
待查找Schema
val structureSchemaToFind = new StructType() .add("name",new StructType() .add("firstname",StringType) .add("middlename",StringType)) .add("country",new StructType() .add("city",StringType)) .add("age",IntegerType)
预期校验结果
针对上述示例,最终返回的缺失字段为基准Schema中不存在的两类字段:
- 顶层普通字段
age - 嵌套结构字段
country及其子字段city
内容的提问来源于stack exchange,提问作者Azo
相关产品推荐
相关产品推荐

