过程:
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();