我已经在hive:udfrowsequence中尝试过这个UDF。
但是它不产生唯一的值,即它依赖于映射器重复序列。
假设我有一个文件(有4条记录)在HDFS中可用。它将为该作业创建一个映射器,结果将类似于
1
2
3
4
1
2
3
4
1
2
。
我想您正在查找row_number()
。您可以在这里阅读有关它和其他“窗口”功能。
示例:
SELECT *, ROW_NUMBER() OVER ()
FROM some_database.some_table
我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?
请告诉我如何在udf中使用hive conf变量,以及如何在hive udf中访问hive配置?
我有一些困难,以确保我利用已排序的数据在一个配置单元表。(使用ORC文件格式) 我知道我们可以通过在create DDL中声明子句来影响数据从配置单元表中读取的方式。 这意味着每次查询该表时,数据将通过在各个映射器之间分发,然后对其进行排序。 我的问题是: 我不希望数据被拆分为文件(桶),因为卷不是那么多,我会保留小文件。 但是,我确实想利用排序插入。 我真的需要在create DLL语句中使用吗
我已经为hive创建了一个名为Zodiac的UDF,然后添加了JAR文件,并在hive中创建了临时函数。
我们有配置了FreeIPA的HDP-2.2集群。但当我们试图通过knox访问HiveJDBC时,我们面临着一个问题。以下是我们正在使用的JDBC URI: jdbc: hive2://xxxxxxxxx: 8443/; ssl=true; sslTrustStore=/var/lib/Knox/data/Security/keystore/gateway.jks; Trust StorePassw
我已经将Teradata表的数据迁移到配置单元中。 如果我使用joins,我需要连接五个表,在hive中可以吗?或者我应该将查询分成五个部分?对于这个问题应该采取什么明智的方法? 请建议