问题标签 [hive-udf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
60 浏览

hive - Hive UDF 仅适用于独立的 select 语句,而不适用于“将表创建为 select...”或“insert into .. select..”

我有一个加密给定输入值的通用 UDF。此 UDF 在用于 select 语句时给出正确的值,但在“将表创建为 select”或“插入到 ..select”语句中使用时,UDF 返回 null。udf 的输入、udf 的输出、正在创建或插入的表列的数据类型,都是字符串类型。

那么,当创建或插入语句的一部分时,select 语句的行为不同的原因可能是什么?

0 投票
1 回答
440 浏览

java - Hive 查询 executeQuery() 在 java JDBC 代码中挂起

我创建了一个 UDTF,并在其中运行 java hive JDBC 代码以执行配置单元查询并获取结果。我能够成功连接到 hive2 服务器,但代码无限期挂起,没有任何异常statement.executeQuery()。可能是什么原因?相同的代码在独立的 eclipse 类中运行,但在作为 udtf 部署在 hadoop 集群中时手。


0 投票
2 回答
997 浏览

hive - 如何在 Hive 中重新加载更新的自定义 UDF 函数?

我用java编写了一个自定义UDF并打包在一个jar文件中。然后,我使用以下方法将其添加到 Hive 中:

每件事都运作良好。但是,在我更新了 UDF 中的一小部分之后,我又重复了前面的步骤,因此 Hive 显然仍然使用旧版本的 UDF。

如何刷新 UDF 的更新版本?

我试图删除jarhdfs 中的旧文件,并使用以下命令删除 udf 函数:

然后重新创建一个同名的新函数,它仍然使用旧版本的 UDF。

0 投票
1 回答
922 浏览

hadoop - Hive UDF - 所有原始类型的通用 UDF

我正在尝试使用 Parameter 实现 Hive UDF,因此我正在扩展GenericUDF类。

问题是我在字符串数据类型上找到的 UDF 作品,但是如果我在其他数据类型上运行它会引发错误。无论数据类型如何,我都希望 UDF 运行。

有人请让我知道以下代码有什么问题。

错误

java.lang.ClassCastException: org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaIntObjectInspector 不能转换为 org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector

0 投票
1 回答
687 浏览

java - Hive:将两张地图合并为一列

我有一个蜂巢表

这是记录的样子

我的目标表看起来像这样

现在我想将 mySource 中的两列组合成一个映射并将其提供给我的目标表。基本上我想写类似的东西

蜂巢中是否有内置方法可以做到这一点?我用 collect_set 尝试了一些东西,但出现了很多错误

0 投票
0 回答
291 浏览

apache-spark - Hive UDF - 如何访问列名

有人可以让我知道如何在简单的 hive udf 中访问列名。

0 投票
0 回答
48 浏览

hive - Hive UDF 返回预期结果,但也在结果中添加了 null 和换行符

我用 Java 编写了 Hive UDF 来解码信息,为此我们使用了下面的代码。

下面的查询使用 UDF 成功执行。

用于检查 UDF 的 Hive 查询是否正常工作

下面是我正在执行 UDF 的性别表

整个性别表

当我使用 UDF 对性别表执行查询时,我得到了空行和新行。请找到以下带有突出显示区域的屏幕截图。 使用 UDF 查询

我只期待一行的结果。请帮助并让我知道我错在哪里。

0 投票
1 回答
523 浏览

java - Hive UDF:通用 UDF 无法从嵌套映射访问结构

这是我的蜂巢桌

我明白了

我想student_id从内部地图中提取所有内容123a,即987z. 所以这就是我想做的

结果应该是

这是我写的Java UDF

当我调用它时

我永远不会过去

我可以看到的输出

在控制台上。

为什么我的转换器无法访问内部地图?

另外,一旦我能够访问内部地图,我将如何取消引用 StructField ?

更新

感谢 serge_k 的建议。恐怕我还需要一个转换器,否则我将无法获得密钥。这是我尝试过的

首先,我将第二个地图检查器和结构检查器定义为

那么这就是我尝试过的

但我仍然看到

我没有正确定义内部地图检查器吗?

0 投票
2 回答
388 浏览

java - Java中的Hive UDF在创建表时失败

这两个查询有什么区别:

其中 my_fun 是一个 java UDF。

我在问,因为当我创建新表(第二个查询)时,我收到一个 java 错误。

我发现错误的来源是我的java文件中的行:

但问题是为什么它在未创建表时有效而在创建表时失败?

0 投票
1 回答
153 浏览

apache-spark - Hive TRANSFORM 接收连接数组值的 NULL

我有一个格式为的蜂巢表:

col1中的每个值都可以在col2中具有多个值,并且每一对(col1, col2)都可以具有col3的多个值。

我正在运行查询[Q]

要得到:

我想使用 python UDF 进行一些转换。所以我使用 TRANSFORM 子句将所有这些列传递给 UDF:

我正在使用 concat_ws 将数组输出转换为由分隔符连接的 collect_list 中的字符串。我得到 col1, col2 结果,但没有得到 col3 输出。

在我的 UDF 中,我只有一个打印语句,用于打印从标准输入接收到的行。

有人可以帮助弄清楚为什么我的 UDF 中没有 col3 吗?