当前位置: 首页 > news >正文

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

<!-- 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

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

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

// 自定义schema
val schema = StructType(List(StructField("uid", StringType, nullable = true),StructField("name", StringType, nullable = true)
))
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该版本正常

相关文章:

  • MySQL的概念和sql语句
  • RabbitMQ原理(四):MQ的可靠性
  • 医学影像乳腺肿瘤分割的同学看过来:PDPNet:用于通用乳腺肿瘤分割的渐进式双先验网络
  • 多线程---wait和notify
  • 【Android知识笔记】插件化专题(二)
  • 一、基础算法精讲:双指针
  • C++大数加法——最简单实现
  • Webpack 基础以及常用插件使用方法
  • 基于GPIO子系统编写LED驱动
  • ChatGPT如何应对用户提出的道德伦理困境?
  • 【开源】基于SpringBoot的车险自助理赔系统的设计和实现
  • 【实战】Kubernetes安装持久化工具NFS-StorageClass
  • 【Python机器学习】零基础掌握RandomForestRegressor集成学习
  • MATLAB中polyvalm函数用法
  • MySQL - UNION 与 UNION ALL
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【刷算法】求1+2+3+...+n
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Java 23种设计模式 之单例模式 7种实现方式
  • Lsb图片隐写
  • nfs客户端进程变D,延伸linux的lock
  • React-Native - 收藏集 - 掘金
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 开源地图数据可视化库——mapnik
  • 深度学习在携程攻略社区的应用
  • 使用SAX解析XML
  • 数据可视化之 Sankey 桑基图的实现
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $(function(){})与(function($){....})(jQuery)的区别
  • (LeetCode) T14. Longest Common Prefix
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (一)基于IDEA的JAVA基础12
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .Net FrameWork总结
  • .net 微服务 服务保护 自动重试 Polly
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net网站发布-允许更新此预编译站点
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /var/lib/dpkg/lock 锁定问题
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • []常用AT命令解释()
  • [AIGC 大数据基础]hive浅谈
  • [Asp.net mvc]国际化
  • [BZOJ] 2044: 三维导弹拦截
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)