我需要从csv文件中读取数据并根据显式模式对其进行验证,如果模式验证失败,则抛出错误 . 为此,我做了以下工作:1)定义了架构
public static StructField[] schema ={
new StructField("name", DataTypes.StringType, false, Metadata.empty()),
new StructField("type_id",DataTypes.StringType, false, Metadata.empty())
};
2)根据模式验证数据
StructType schemaType =new StructType(Myschema.schema);
Dataset<Row> df =session.read().schema(schemaType).option("header", "true").csv(csvInput);
df.printSchema();
我的问题是
-
1)如果任何行未通过验证,如何抛出错误?
-
2)虽然我已经提到过fileds不可为空
结构域定义,当我打印模式时,它将字段打印为可空,为什么会发生这种情况? -
3)在StructField的构造函数中使用元数据参数有什么用处?