Spark通过验证读取csv

时间:2018-02-05 19:59:11

标签: csv validation apache-spark

我正在阅读带有spark阅读功能的csv文件

val schema = ScalaReflection.schemaFor[CustomClass].dataType.asInstanceOf[StructType]
sparkSession.read.option("delimiter",",").schema(schema).csv("test.csv").as[Customclass]

问题在于,当某一行在末尾被剪切或者某些字段在开头缺失时,spark会在该行的末尾设置空值。我确实想对read进行验证,所以只要某行没有预期的分隔符数,spark就会告诉我或抛出异常。

有办法吗?我目前的方法是读取rdd中的每一行,并对每行进行自我验证。然后我将我的rdd转换为Dataframe。所以我的问题是:有没有办法跳过这一步并在读取时进行验证?

1 个答案:

答案 0 :(得分:1)

mode option设为FAILFAST

sparkSession.read.option("mode", "FAILFAST")
  .schema(schema).csv("test.csv").as[Customclass]