在 INSERT INTO TABLE 子句中 UDF 失败

In INSERT INTO TABLE clause UDF is failing

我已经创建了一个 UDF translateText(),它调用 API 来翻译给定的文本并且 returns 在 select 子句中得到正确的结果,但是当我应用 INSERT INTO TABLE 如下所示:

INSERT OVERWRITE TABLE gl_staging_eve.header_text select header_text, translateText(header_text) from gl_staging_eve.header_text_only;

查询失败,输出如下:

失败:执行错误,return 来自 org.apache.hadoop.hive.ql.exec.tez.TezTask 的代码 2。顶点失败,vertexName=Map 1,vertexId=vertex_1543885299280_8715_1_00,diagnostics=[Task failed,taskId=task_1543885299280_8715_1_00_000040,diagnostics=[TaskAttempt 0 failed,info=[Container container_e14_1543885299280_8715_01_000042 finished with diagnostics set到 [容器完成。 ]],TaskAttempt 1 失败,info=[Container container_e14_1543885299280_8715_01_000043 已完成,诊断设置为 [Container 已完成。 ]],TaskAttempt 2 失败,info=[Container container_e14_1543885299280_8715_01_000087 已完成,诊断设置为 [Container 已完成。 ]],TaskAttempt 3 失败,info=[Container container_e14_1543885299280_8715_01_000137 已完成,诊断设置为 [Container 已完成。 ]]], 由于 OWN_TASK_FAILURE, failedTasks:1 killedTasks:40, 顶点未成功 vertex_1543885299280_8715_1_00 [Map 1] killed/failed 由于 to:OWN_TASK_FAILURE]DAG由于 VERTEX_FAILURE,没有成功。 failedVertices:1 killedVertices:019/02/12 06:54:58 [ATS 记录器 0]:信息 hooks.ATSHook:收到 post-挂钩通知:bduser_20190212065438_6cf35096-aa74-48d1-a8ae-6d76b0049099 2012 年 2 月 19 日 06:54:58 [main]:错误 ql.Driver:失败:执行错误,return 来自 org.apache.hadoop.hive.ql.exec.tez.TezTask 的代码 2。顶点失败,vertexName=Map 1,vertexId=vertex_1543885299280_8715_1_00,diagnostics=[Task failed,taskId=task_1543885299280_8715_1_00_000040,diagnostics=[TaskAttempt 0 failed,info=[Container container_e14_1543885299280_8715_01_000042 finished with diagnostics set到 [容器完成。 ]],TaskAttempt 1 失败,info=[Container container_e14_1543885299280_8715_01_000043 已完成,诊断设置为 [Container 已完成。 ]],TaskAttempt 2 失败,info=[Container container_e14_1543885299280_8715_01_000087 已完成,诊断设置为 [Container 已完成。 ]],TaskAttempt 3 失败,info=[Container container_e14_1543885299280_8715_01_000137 已完成,诊断设置为 [Container 已完成。 ]]], 由于 OWN_TASK_FAILURE, failedTasks:1 killedTasks:40, 顶点未成功 vertex_1543885299280_8715_1_00 [Map 1] killed/failed 由于 to:OWN_TASK_FAILURE]DAG由于 VERTEX_FAILURE,没有成功。 failedVertices:1 killedVertices:0 2012 年 2 月 19 日 06:54:58 [ATS 记录器 0]:调试 security.UserGroupInformation:PrivilegedAction as:bduser (auth:SIMPLE) from:org.apache.hadoop.yarn.client.api.impl.TimelineWriter.doPosting(TimelineWriter.java:112)

基本上 INSERT INTO TABLE 不起作用。

Hive 1.2.x 默认情况下 hive.execution.enginetez.

当我提交 INSERT INTO TABLE 查询时,SELECT 有 UDF,然后查询失败。

但是当我将执行引擎更改为 MapReduce 时:set hive.execution.engine=mr; 然后我的 INSERT 查询 运行 成功。

希望这对其他人也有帮助!