我正在使用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 /工作簿
答案 0 :(得分:1)
看起来你没有添加所有依赖的罐子。您需要构建具有依赖关系的jar或逐个添加所有依赖的jar。
命令:hive>添加myjar.jar