spark3.3.x处理excel数据

环境:

spark3.3.x

scala2.12.x
引用:

spark-shell --jars spark-excel_2.12-3.3.1_0.18.5.jar

或项目里配置pom.xml

scala 复制代码
<!-- https://mvnrepository.com/artifact/com.crealytics/spark-excel -->
<dependency>
    <groupId>com.crealytics</groupId>
    <artifactId>spark-excel_2.12</artifactId>
    <version>3.3.1_0.18.5</version>
</dependency>

代码:

1、直接使用excel文件第一行作为schema

scala 复制代码
val df = spark.read
     .format("com.crealytics.spark.excel")
//     .format("excel") // 该版本的包直接写"excel"也可以
     .option("header", "true") // 该版本的包将useHeader改成了header
     .load(filePath)

2、使用自定义schema(该方法如果excel文件第一行不是所需数据,需手动限制读取的数据范围)

scala 复制代码
// 自定义schema
val schema = StructType(List(
    StructField("uid", StringType, nullable = true),
    StructField("name", StringType, nullable = true)
))
scala 复制代码
val df = spark.read
     .format("com.crealytics.spark.excel")
//     .format("excel") // 该版本的包直接写"excel"也可以
     .option("header", "false") // 使用自定义schema,所以设置为false
     .option("dataAddress", "'Sheet1'!A2:B2") // 限制读取的数据范围(也可以不加:B2就是取从A列往后的所有列)
     .schema(schema)
     .load(filePath)

ps:刚开始用的3.3.3_0.20.1这个版本的不可用,具体报啥错忘了,降到3.3.1_0.18.5该版本正常

相关推荐
搬砖的小码农_Sky1 天前
Excel批量复制全攻略:从单列单行到高级场景
excel·人机交互
专注VB编程开发20年1 天前
淘宝上架销售技巧:Excel管理系统开发 / VBA / ERP / OA办公管理
java·数据库·excel
爱喝水的鱼丶1 天前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第五篇:SAP 报表多格式输出:Excel/PDF 批量导出功能实现
学习·性能优化·pdf·excel·sap·abap
tedcloud1231 天前
codegraph部署教程:构建代码库语义分析环境
服务器·人工智能·word·excel
吾爱神器1 天前
多个EXCEL工作表格合并数据列比对工具
excel·数据合并·数据对比·数据比对·excel数据合并·excel数据对比
daols881 天前
vxe-table 实现 Excel 风格向下复制填充(Ctrl + D 键)
javascript·vue.js·excel·vxe-table·vxe-ui
SilentSamsara1 天前
文件与数据处理:CSV/JSON/Excel/Parquet 高效操作与内存优化
开发语言·python·青少年编程·性能优化·json·excel
工业互联网专业1 天前
基于Spark的共享单车数据存储系统的设计与实现_flask+spider
spark·flask·毕业设计·源码·课程设计·spider·共享单车
X.AI6661 天前
英伟达RTX Spark发布:AI PC的下一战,不是跑分,而是本地Agent
大数据·人工智能·spark
Maydaycxc1 天前
Excel/WPS 自动化实战:科学计数法、千张表格循环处理、打包交付的多工具对比
python·自动化·excel·wps·rpa