Loading excel using Guzzle - ja-guzzle/guzzle_docs GitHub Wiki

When there are column headers with date type, loading of excel fails with following exception

20/02/18 12:37:38 ERROR Uncaught throwable from user code: java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
  at shadeio.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:1003)
  at shadeio.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:389)
  at shadeio.poi.xssf.usermodel.XSSFCell.getStringCellValue(XSSFCell.java:341)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$7.com$crealytics$spark$excel$ExcelRelation$$anonfun$$colName$1(ExcelRelation.scala:119)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$7$$anonfun$12.apply(ExcelRelation.scala:122)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$7$$anonfun$12.apply(ExcelRelation.scala:122)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
  at scala.collection.Iterator$class.foreach(Iterator.scala:891)
  at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
  at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
  at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
  at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$7.apply(ExcelRelation.scala:122)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$7.apply(ExcelRelation.scala:105)
  at scala.Option.getOrElse(Option.scala:121)
  at com.crealytics.spark.excel.ExcelRelation.headerColumns$lzycompute(ExcelRelation.scala:105)
  at com.crealytics.spark.excel.ExcelRelation.headerColumns(ExcelRelation.scala:104)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$inferSchema$1.apply(ExcelRelation.scala:162)
  at com.crealytics.spark.excel.ExcelRelation$$anonfun$inferSchema$1.apply(ExcelRelation.scala:161)
  at scala.Option.getOrElse(Option.scala:121)
  at com.crealytics.spark.excel.ExcelRelation.inferSchema(ExcelRelation.scala:161)
  at com.crealytics.spark.excel.ExcelRelation.<init>(ExcelRelation.scala:35)
  at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:40)
  at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:18)
  at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:12)
  at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:347)
  at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:307)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:293)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:214)
  at com.justanalytics.guzzle.ingestion.source.ExcelFileReader$$anonfun$16.apply(ExcelFileReader.scala:49)
  at com.justanalytics.guzzle.ingestion.source.ExcelFileReader$$anonfun$16.apply(ExcelFileReader.scala:47)
  at scala.collection.immutable.List.map(List.scala:284)
  at com.justanalytics.guzzle.ingestion.source.ExcelFileReader$.read(ExcelFileReader.scala:47)
  at com.justanalytics.guzzle.ingestion.source.SourceReader$.read(SourceReader.scala:22)
  at com.justanalytics.guzzle.ingestion.Main$.main(Main.scala:160)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw$$iw$$iw$$iw$$iw$$iw.<init>(command--1:1)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw$$iw$$iw$$iw$$iw.<init>(command--1:44)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw$$iw$$iw$$iw.<init>(command--1:46)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw$$iw$$iw.<init>(command--1:48)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw$$iw.<init>(command--1:50)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$$iw.<init>(command--1:52)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read.<init>(command--1:54)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$.<init>(command--1:58)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$read$.<clinit>(command--1)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$eval$.$print$lzycompute(<notebook>:7)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$eval$.$print(<notebook>:6)
  at line4b53bc9375704e2bb0cc1f17b8d0267b25.$eval.$print(<notebook>)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:793)
  at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1054)
  at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:645)
  at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:644)
  at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31)
  at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:19)
  at scala.tools.nsc.interpreter.IMain$WrappedRequest.loadAndRunReq(IMain.scala:644)
  at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:576)
  at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:572)
  at com.databricks.backend.daemon.driver.DriverILoop.execute(DriverILoop.scala:215)
  at com.databricks.backend.daemon.driver.ScalaDriverLocal$$anonfun$repl$1.apply$mcV$sp(ScalaDriverLocal.scala:197)
  at com.databricks.backend.daemon.driver.ScalaDriverLocal$$anonfun$repl$1.apply(ScalaDriverLocal.scala:197)
  at com.databricks.backend.daemon.driver.ScalaDriverLocal$$anonfun$repl$1.apply(ScalaDriverLocal.scala:197)
  at com.databricks.backend.daemon.driver.DriverLocal$TrapExitInternal$.trapExit(DriverLocal.scala:700)
  at com.databricks.backend.daemon.driver.DriverLocal$TrapExit$.apply(DriverLocal.scala:653)
  at com.databricks.backend.daemon.driver.ScalaDriverLocal.repl(ScalaDriverLocal.scala:197)
  at com.databricks.backend.daemon.driver.DriverLocal$$anonfun$execute$9.apply(DriverLocal.scala:386)
  at com.databricks.backend.daemon.driver.DriverLocal$$anonfun$execute$9.apply(DriverLocal.scala:363)
  at com.databricks.logging.UsageLogging$$anonfun$withAttributionContext$1.apply(UsageLogging.scala:235)
  at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
  at com.databricks.logging.UsageLogging$class.withAttributionContext(UsageLogging.scala:230)
  at com.databricks.backend.daemon.driver.DriverLocal.withAttributionContext(DriverLocal.scala:49)
  at com.databricks.logging.UsageLogging$class.withAttributionTags(UsageLogging.scala:272)
  at com.databricks.backend.daemon.driver.DriverLocal.withAttributionTags(DriverLocal.scala:49)
  at com.databricks.backend.daemon.driver.DriverLocal.execute(DriverLocal.scala:363)
  at com.databricks.backend.daemon.driver.DriverWrapper$$anonfun$tryExecutingCommand$2.apply(DriverWrapper.scala:644)
  at com.databricks.backend.daemon.driver.DriverWrapper$$anonfun$tryExecutingCommand$2.apply(DriverWrapper.scala:644)
  at scala.util.Try$.apply(Try.scala:192)
  at com.databricks.backend.daemon.driver.DriverWrapper.tryExecutingCommand(DriverWrapper.scala:639)
  at com.databricks.backend.daemon.driver.DriverWrapper.getCommandOutputAndError(DriverWrapper.scala:485)
  at com.databricks.backend.daemon.driver.DriverWrapper.executeCommand(DriverWrapper.scala:597)
  at com.databricks.backend.daemon.driver.DriverWrapper.runInnerLoop(DriverWrapper.scala:390)
  at com.databricks.backend.daemon.driver.DriverWrapper.runInner(DriverWrapper.scala:337)
  at com.databricks.backend.daemon.driver.DriverWrapper.run(DriverWrapper.scala:219)
  at java.lang.Thread.run(Thread.java:748)

In such scenarios - set contains headers to false in source and specify column mapping manually

⚠️ **GitHub.com Fallback** ⚠️