[英]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.