Dataset<Row> SourcePropertSet = sqlContext.read()
.format("com.crealytics.spark.excel")
.option("location", "E:\\XLS\\NEWFILE.xlsx")
.option("useHeader", "false")
.option("treatEmptyValuesAsNulls", "true")
.option("inferSchema", "true")
.option("addColorColumns", "false")
.load();
SourcePropertSet = SourcePropertSet.repartition(1).select("*")
.write().option("treatEmptyValuesAsNulls", "true")
.format("org.zuinnote.spark.office.excel")
.mode(SaveMode.Overwrite)
.save("E:\\XLS\\NEWFILE1.xlsx");
对于上面的代码,在写入xslx格式时,还有其他选项可以考虑空值。
我得到scala.MatchError:null异常引发,如果特定列包含任何空值。
要解决的可能解决方案是通过放置正确的逻辑代码或寻找.options或是否有任何其他包以.xslx格式执行此操作?空值不写在“org.zuinnote.spark.office.excel”包中
你能展示数据集的模式和数据吗? – abaghel
我正在从NEWFILE.xlsx文件中加载数据,其中特定列中的某些数据包含空值。在这种情况下,如果记录不包含任何成功写入excel的空值,那么我只手动测试了3条记录。但是,如果有空值,我会得到上述例外。 @abaghe –
为什么使用“com.crealytics.spark.excel”阅读和“org.zuinnote.spark.office.excel”写作?您可以使用“org.zuinnote.spark.office.excel”进行阅读和写作。 – abaghel