excel - 加载 Excel 文件的强制选项是什么?

标签 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)

如果未设置上述任何选项(位置除外),我会收到以下错误:
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)

最佳答案

spark-excel 的大部分选项为必填项,userSchema 除外和 sheetName .

您可以随时在可以找到 here 的 DataSource 源代码中进行检查。 .

您必须记住,此数据源或数据连接器包是在 spark 项目之外实现的,并且每个都带有自己的规则和参数。

关于excel - 加载 Excel 文件的强制选项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44427228/

相关文章:

excel - 在立即窗口中显示变体数组值

excel - 将多个文本文件的第二行导入 Excel

scala - 如何将 RDD[Row] 转换为 RDD[String]

scala - 用于无形状可扩展记录的 API

scala - 如何在 Play 2 中从 ReactiveMongo 返回 JSON 的枚举器

python - 如果我缓存一个 Spark Dataframe 然后覆盖引用,原始数据帧还会被缓存吗?

apache-spark - ARRAY_AGG 函数在 Spark SQL 中不起作用

excel - Laravel Excel 不能使用 stdClass 类型的对象作为数组

python - 在Python中输入参数

scala - 在 apache Spark 数据框中分解数组