在Spark2 DataFrame中提供显式架构

时间:2018-12-09 13:04:57

标签: apache-spark-sql apache-spark-2.3

我需要从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不为空 Structfield定义,当我打印模式时,它会打印 字段为空,为什么会发生这种情况?
  • 3)元数据参数在构造函数中的用途是什么 StructField?

0 个答案:

没有答案