Gar*_*aso 5 excel scala apache-spark apache-spark-sql spark-excel
我已经使用以下语法从 S3 加载了一个 excel 文件,但我想知道需要在此处设置的选项。
为什么必须设置以下所有选项以加载 excel 文件?这些选项都不是加载其他文件类型(如 csv、del、json、avro 等)所必需的。
val data = sqlContext.read.
format("com.crealytics.spark.excel").
option("location", s3path).
option("useHeader", "true").
option("treatEmptyValuesAsNulls", "true").
option("inferSchema","true").
option("addColorColumns", "true").
load(path)
Run Code Online (Sandbox Code Playgroud)
如果未设置上述任何选项(位置除外),我会收到以下错误:
sqlContext.read.format("com.crealytics.spark.excel").option("location", s3path).load(s3path)
Run Code Online (Sandbox Code Playgroud)
错误信息 :
Name: java.lang.IllegalArgumentException
Message: Parameter "useHeader" is missing in options.
StackTrace: at com.crealytics.spark.excel.DefaultSource.checkParameter(DefaultSource.scala:37)
at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:19)
at com.crealytics.spark.excel.DefaultSource.createRelation(DefaultSource.scala:7)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:345)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:132)
at $anonfun$1.apply(<console>:47)
at $anonfun$1.apply(<console>:47)
at time(<console>:36)
Run Code Online (Sandbox Code Playgroud)