什么是加载Excel文件的强制选项?
我使用下面的语法从S3加载了一个excel文件,但我想知道需要在这里设置的选项。
为什么必须设置下面所有的加载excel文件的选项? 这些选项都不是强制加载其他文件types,如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)
如果上面的任何选项(除了位置)都没有设置,我会得到下面的错误:
sqlContext.read.format("com.crealytics.spark.excel").option("location", s3path).load(s3path)
错误信息 :
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)
除了userSchema
和sheetName
之外, spark-excel
大部分选项都是必需的。
您可以随时在DataSource源代码中查看您可以在这里find的代码。
您必须记住,这个数据源或数据连接器包是在spark项目之外实现的,每个包都有自己的规则和参数。