繁体   English   中英

生成唯一的客户ID /在配置单元中插入唯一的行

[英]Generate unique customer id / insert unique rows in hive

我需要根据客户名称和地址将唯一的行插入到配置单元表中。

无论如何,我们可以使用客户名称和地址产生独特的价值吗? 我希望生成如下所示的unique_value列,并选择具有不同的unique_value的行。

例如下面的例子,我想生成unique_value列

{customer_name} {address} {unique_value}

奥马尔街1 111

瑞安stree2 222

奥马尔街1 111

或任何其他方法也表示赞赏!

您可以尝试两件事。 您可以尝试使用UUID,但这将为每一行生成一个唯一的ID。 这样的事情会做:

从表名中选择reflect(“ java.util.UUID”,“ randomUUID”),客户名,地址,唯一值

但是,如果您打算基于名称和地址使用唯一键,则可以合并两个字段并对结果字符串进行哈希处理(请参阅此处的哈希函数详细信息: https : //cwiki.apache.org/confluence/ display / Hive / LanguageManual + UDF )。 这样可以确保相同的名称和地址获得相同的密钥。 此查询应足够:

从表名称中选择customer_name,address,hash(concat(customer_name,address))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM