这里是 read 和 write 示例,用于读取和写入 excel 具有全套选项。..
来源spark-excel from crealytics
Scala API
Spark 2.0+:
从 Excel 文件创建 DataFrame
import org.apache.spark.sql._
val spark: SparkSession = ???
val df = spark.read
.format("com.crealytics.spark.excel")
.option("sheetName", "Daily") // Required
.option("useHeader", "true") // Required
.option("treatEmptyValuesAsNulls", "false") // Optional, default: true
.option("inferSchema", "false") // Optional, default: false
.option("addColorColumns", "true") // Optional, default: false
.option("startColumn", 0) // Optional, default: 0
.option("endColumn", 99) // Optional, default: Int.MaxValue
.option("timestampFormat", "MM-dd-yyyy HH:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss[.fffffffff]
.option("maxRowsInMemory", 20) // Optional, default None. If set, uses a streaming reader which can help with big files
.option("excerptSize", 10) // Optional, default: 10. If set and if schema inferred, number of rows to infer schema from
.schema(myCustomSchema) // Optional, default: Either inferred schema, or all columns are Strings
.load("Worktime.xlsx")
将 DataFrame 写入 Excel 文件
df.write
.format("com.crealytics.spark.excel")
.option("sheetName", "Daily")
.option("useHeader", "true")
.option("dateFormat", "yy-mmm-d") // Optional, default: yy-m-d h:mm
.option("timestampFormat", "mm-dd-yyyy hh:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss.000
.mode("overwrite")
.save("Worktime2.xlsx")
注意:您也可以使用它们的名称来代替 sheet1 或 sheet2..
在上面给出的示例中,Daily 是工作表名称。
- 如果你想从 spark shell 中使用它...
可以使用--packages 命令行选项将此包添加到 Spark。例如,在启动 spark shell 时包含它:
$SPARK_HOME/bin/spark-shell --packages com.crealytics:spark-excel_2.11:0.13.1
groupId: com.crealytics
artifactId: spark-excel_2.11
version: 0.13.1
Further reading : See my article (How to do Simple reporting with Excel sheets using Apache Spark, Scala ?) of how to write in to excel file after an aggregations in to many excel sheets
提示:这是非常有用的方法,尤其是对于写作
maven 测试用例,您可以在其中将带有示例数据的 excel 工作表放在 excel 中
src/main/resources 文件夹,您可以在单元测试用例(scala/java)中访问它们,这会从 excel 表中创建 DataFrame[s]...
HadoopOffice 库的 Spark 数据源。这个 Spark 数据源
假设至少 Spark 2.0.1。但是,HadoopOffice 库可以
也可以直接从 Spark 1.x 使用。目前这个数据源
支持以下格式的 HadoopOffice 库:
Excel 数据源格式:org.zuinnote.spark.office.Excel 正在加载和
保存旧 Excel (.xls) 和新 Excel (.xlsx) 此数据源是
在Spark-packages.org 和Maven Central 上可用。