我正在用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。org/apache/poi/ss/usermodel/工作簿
1条答案
按热度按时间i1icjdpr1#
看起来你没有添加所有依赖的jar。您需要使用依赖关系构建jar,或者逐个添加所有依赖jar。
命令:hive>add myjar.jar