如何在加载xls文件到spark时删除格式错误的记录

时间:2018-08-30 04:46:43

标签: apache-spark xls

在加载csv文件时,有一个选项可以删除格式错误的记录。我们可以对XLS文件加载执行相同操作吗? 我尝试加载XLS文件(大小接近1T),并且显示此错误:

warning: there was one deprecation warning; re-run with -deprecation for details
sqlContext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@339370e
java.lang.IllegalArgumentException: MALFORMED
  at java.util.zip.ZipCoder.toString(ZipCoder.java:58)
  at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:300)

请告知。非常感谢。

1 个答案:

答案 0 :(得分:0)

我想这就是您要寻找的(就像Java在CSV中所做的那样):

spark.read().format("csv").option("sep", ",")
                          .option("header", true)
                          .option("mode", "DROPMALFORMED")
                          .schema(schema)
                          .load(filePath);

在这里,我们mode将处理malformed条记录,并在遇到时将其删除。 同样,对于header文件格式,true设置为separator,不会将其视为值,而comma被定义为CSV

spark是要在上述代码段之前创建的spark session