Я хочу загрузить данные из файла Excel в HDFS с помощью Spark Session 2.2. Вот мой код Java и полученное мной исключение.
Dataset<Row> df =
session.read().
format("com.crealytics.spark.excel").
option("location", pathFile).
option("sheetName", "Feuil1").
option("useHeader", "true").
option("treatEmptyValuesAsNulls", "true").
option("inferSchema", "true").
option("addColorColumns", "false").
load(pathFile);
У меня такое исключение:
java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.close()V at com.crealytics.spark.excel.ExcelRelation.com$crealytics$spark$excel$ExcelRelation$$getExcerpt(ExcelRelation.scala:81) at com.crealytics.spark.excel.ExcelRelation$$anonfun$inferSchema$1.apply(ExcelRelation.scala:270) at com.crealytics.spark.excel.ExcelRelation$$anonfun$inferSchema$1.apply(ExcelRelation.scala:269) at scala.Option.getOrElse(Option.scala:121) at com.crealytics.spark.excel.ExcelRelation.inferSchema(ExcelRelation.scala:269) at com.crealytics.spark.excel.ExcelRelation.(ExcelRelation.scala:97) at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:35) at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:14) at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:8) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:330) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152)




Похоже на проблему зависимости. Убедитесь, что в вашем pom / sbt некоторые библиотеки не используют другую версию Apache POI. Вы можете сделать это, например, с помощью mvn depenency: tree (https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html) или соответствующей команды SBT / Gradle ...
Когда вы обнаружите конфликтующую зависимость (ту, в которой отсутствует метод Workbook.close ()), вы можете исключить ее из импорта.
Видимо сюда добавили метод close(): https://github.com/apache/poi/commit/47a8f6cf486b974f31ffd694716f424114e647d5