Spark Java中如何从StructType里提取内部StructType对象
Spark Java 获取嵌套StructType的方法
要从根级StructType中提取嵌套的name对应的StructType,可以按以下步骤实现:
- 获取DataFrame的根级Schema(即
StructType对象) - 定位到
name对应的StructField - 将该字段的数据类型强制转换为
StructType
完整代码示例
// 获取DataFrame的根级Schema StructType rootSchema = df.schema(); // 根据字段名获取name对应的StructField StructField nameField = rootSchema.apply("name"); // 将字段的DataType强转为StructType,得到嵌套的结构类型 StructType nameStructType = (StructType) nameField.dataType();
验证与使用
拿到nameStructType后,可直接操作它的内部字段,比如遍历打印子字段信息:
// 遍历name的所有子字段并输出详情 for (StructField subField : nameStructType.fields()) { System.out.printf("子字段名: %s, 数据类型: %s, 是否可为空: %b%n", subField.name(), subField.dataType(), subField.nullable()); }
执行后会输出:
子字段名: firstname, 数据类型: StringType, 是否可为空: true
子字段名: middlename, 数据类型: StringType, 是否可为空: true
子字段名: lastname, 数据类型: StringType, 是否可为空: true
内容的提问来源于stack exchange,提问作者Prateek Gautam
相关产品推荐
相关产品推荐

