问题标签 [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.
hive - Hive UDF 仅适用于独立的 select 语句,而不适用于“将表创建为 select...”或“insert into .. select..”
我有一个加密给定输入值的通用 UDF。此 UDF 在用于 select 语句时给出正确的值,但在“将表创建为 select”或“插入到 ..select”语句中使用时,UDF 返回 null。udf 的输入、udf 的输出、正在创建或插入的表列的数据类型,都是字符串类型。
那么,当创建或插入语句的一部分时,select 语句的行为不同的原因可能是什么?
java - Hive 查询 executeQuery() 在 java JDBC 代码中挂起
我创建了一个 UDTF,并在其中运行 java hive JDBC 代码以执行配置单元查询并获取结果。我能够成功连接到 hive2 服务器,但代码无限期挂起,没有任何异常statement.executeQuery()
。可能是什么原因?相同的代码在独立的 eclipse 类中运行,但在作为 udtf 部署在 hadoop 集群中时手。
hive - 如何在 Hive 中重新加载更新的自定义 UDF 函数?
我用java编写了一个自定义UDF并打包在一个jar
文件中。然后,我使用以下方法将其添加到 Hive 中:
每件事都运作良好。但是,在我更新了 UDF 中的一小部分之后,我又重复了前面的步骤,因此 Hive 显然仍然使用旧版本的 UDF。
如何刷新 UDF 的更新版本?
我试图删除jar
hdfs 中的旧文件,并使用以下命令删除 udf 函数:
然后重新创建一个同名的新函数,它仍然使用旧版本的 UDF。
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
java - Hive:将两张地图合并为一列
我有一个蜂巢表
这是记录的样子
我的目标表看起来像这样
现在我想将 mySource 中的两列组合成一个映射并将其提供给我的目标表。基本上我想写类似的东西
蜂巢中是否有内置方法可以做到这一点?我用 collect_set 尝试了一些东西,但出现了很多错误
apache-spark - Hive UDF - 如何访问列名
有人可以让我知道如何在简单的 hive udf 中访问列名。
java - Hive UDF:通用 UDF 无法从嵌套映射访问结构
这是我的蜂巢桌
我明白了
我想student_id
从内部地图中提取所有内容123a
,即987z
. 所以这就是我想做的
结果应该是
这是我写的Java UDF
当我调用它时
我永远不会过去
我可以看到的输出
在控制台上。
为什么我的转换器无法访问内部地图?
另外,一旦我能够访问内部地图,我将如何取消引用 StructField ?
更新
感谢 serge_k 的建议。恐怕我还需要一个转换器,否则我将无法获得密钥。这是我尝试过的
首先,我将第二个地图检查器和结构检查器定义为
那么这就是我尝试过的
但我仍然看到
我没有正确定义内部地图检查器吗?
java - Java中的Hive UDF在创建表时失败
这两个查询有什么区别:
和
其中 my_fun 是一个 java UDF。
我在问,因为当我创建新表(第二个查询)时,我收到一个 java 错误。
我发现错误的来源是我的java文件中的行:
但问题是为什么它在未创建表时有效而在创建表时失败?
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 吗?