使用java读取存储在hdfs中的excel文件

时间:2018-02-08 11:44:12

标签: hadoop hive apache-poi hdfs user-defined-functions

我正在使用Java为Hive编写UDF。我必须读取存储在hdfs中的excel文件,并使用udf进行一些处理。我正在使用poi库进行处理。

当我们从hdfs读取时,我们得到FSDataInputStream但是当我们使用POI创建工作簿时,它需要InputStream对象。
虽然代码在编译时没有给出错误。

FSDataInputStream stream = hdfs.open(new Path(inputFile));
Workbook workbook= new XSSFWorkbook(stream);

但是当我创建临时功能时,我得到:

  

执行错误,从org.apache.hadoop.hive.ql.exec.FunctionTask返回代码-101。组织/阿帕奇/ POI / SS /的usermodel /工作簿

1 个答案:

答案 0 :(得分:1)

看起来你没有添加所有依赖的罐子。您需要构建具有依赖关系的jar或逐个添加所有依赖的jar。

命令:hive>添加myjar.jar