当前位置: 首页 > 知识库问答 >
问题:

使用配置单元表的配置单元UDF

糜博远
2023-03-14

我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码:

class myudf  extends udf{

    evaluate(Text input){

        getNewHiveConnection(); //i want to replace this by getCurrentHiveUserConnetion();
        executeHiveQuery(input);
        return something;
}

我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

共有1个答案

叶富
2023-03-14

如果希望在查询中从整个列返回最接近的匹配项,可以将其视为某种聚合,并使用配置单元UDAF:https://cwiki.apache.org/confluence/display/Hive/genericudafcaseStudy

还有非常方便的教程:http://beekeeperdata.com/posts/hadoop/2015/08/17/hive-udaf-tutorial.html

 类似资料:
  • 我正在使用Spark SQL读取一个配置单元表,并将其分配给一个scala val 有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。 嗨,我试着按建议做,但仍然得到同样的错误。

  • 您的回应将不胜感激。谢了!

  • 我试图在Hive0.14中执行HiveACID事务属性,比如通过Java插入、删除和更新。我能够设置所需的ACID事务属性。还可以创建具有事务属性的表。但它失败了。下面是示例代码: 尝试插入时获得以下异常: 线程“main”java中出现异常。sql。SQLException:处理语句时出错:失败:执行错误,从组织返回代码1。阿帕奇。hadoop。蜂箱ql.exec。org的MapRedTask先

  • 我设置了一个AWS EMR集群,其中包括Spark 2.3.2、hive 2.3.3和hbase 1.4.7。如何配置Spark以访问hive表? 我采取了以下步骤,但结果是错误消息: Java语言lang.ClassNotFoundException:java。lang.NoClassDefFoundError:org/apache/tez/dag/api/SessionNotRunning使用

  • 我使用Hortonworks Hadoop HDP-2.3.2.0-2950 Hive over Tez引擎 下面2个查询来自Java代码。 ——运行良好 ——失败并出现错误 我的代码:

  • 在创建配置单元表时,如果使用分区或关键字群集,配置单元将创建对应于每个分区或桶的单独文件。但是对于外部表,这仍然有效。根据我的理解,与外部文件相对应的数据文件不是由hive管理的。同样,hive也会创建对应于每个分区或bucket的附加文件,并将相应的数据移到这些文件中。 编辑-添加详细信息。 摘自“Hadoop:权威指南”-“第17章:配置单元” 当我们将数据加载到分区表中时,分区值是显式指定的