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该版本正常

相关推荐
大大大大晴天️3 小时前
每天认识一个组件:Spark Catalyst
大数据·spark
程序 代码狂人4 小时前
金融数仓体系与核心业务知识详解
大数据·分布式·spark
Allstar_431 天前
制造业研发管理数字化:从 Excel 到专业 APQP 系统的架构选型思考
架构·excel
驾驭人生1 天前
NET NPOI 实战:生成带下拉、数据校验、必填标红的 Excel 导入模板
excel
泡海椒1 天前
把 TRANSFORM 做成可扩展能力:JQuick-Excel 的函数与 SPI 调用链
驱动开发·excel
2601_962780911 天前
2027采购岗准备:大数据管理与应用专业如何把Excel、SQL变成业务能力
excel
开开心心_Every1 天前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
泡海椒1 天前
Spring 项目中如何组织 JQuick-Excel 的 XML 与 Bean
xml·spring·excel
死磕音视频1 天前
Microsoft Copilot 办公入门:在 Word、Excel、PowerPoint 里用 AI 完成日常文档工作
word·excel·copilot·办公效率