这两个查询有什么区别:
SELECT my_fun(col_name) FROM my_table;
和
CREATE TABLE new_table AS SELECT my_fun(col_name) FROM my_table;
其中 my_fun 是一个 java UDF。
我在问,因为当我创建新表(第二个查询)时,我收到一个 java 错误。
Failure while running task:java.lang.RuntimeException: java.lang.RuntimeException: Map operator initialization failed
...
Caused by: org.apache.hadoop.hive.ql.exec.UDFArgumentException: Unable to instantiate UDF implementation class com.company_name.examples.ExampleUDF: java.lang.NullPointerException
我发现错误的来源是我的java文件中的行:
encoded = Files.readAllBytes(Paths.get(configPath));
但问题是为什么它在未创建表时有效而在创建表时失败?