【SPARK】Spark 使用java API读取Excel

过程:

1、添加两个pom

        <!--读取excel文件-->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.10-FINAL</version>
		</dependency>

		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.10-FINAL</version>
		</dependency>

2、使用URL远程连接

        String path = “hdfs://namenode:8020/user/hdfs/test.url”;
        InputStream inputStream = new URL(path).openStream();


//                FileInputStream inputStream = new FileInputStream(path);
//                XSSFWorkbook xssfSheets = new XSSFWorkbook(inputStream);
//                XSSFSheet sheet = xssfSheets.getSheetAt(0);// 取第一个sheet
                Workbook workbook = WorkbookFactory.create(inputStream);
                Sheet sheet = workbook.getSheetAt(0);// 取第一个sheet
                int rowTotal = sheet.getPhysicalNumberOfRows();//总行数

error:上面被注释的代码是出现了如下错误,由于不同版本的excel引起出现不兼容,使用兼容API Workbook已解决

Package should contain a content type part [M1.13]] with root cause

3、开发过程中,还出现了如下错误,是由于没有hdfs的协议头,正常是file:///,https://,所以需要添加协议

java.net.MalformedURLException: unknown protocol: hdfs....

解决办法:

//添加hdfs协议
 URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
 InputStream inputStream = new URL(path).openStream();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zsigner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值