【发布时间】:2012-10-12 15:28:03
【问题描述】:
我正在尝试使用 Hive 将电话号码与某个区域匹配。 我有一个表(prefmap),它将一个数字前缀(prefix)映射到一个区域(area)和另一个表(users),其中包含一个电话号码列表(nb)。 每个电话号码只有 1 个匹配项(无子区域)
问题是前缀的长度不是固定的,所以我不能在 JOIN 的 ON() 条件中使用 UDF 函数 substr(nb,"prefix's length") 将数字的子字符串与前缀匹配。
当我尝试使用 instr() 来查找数字是否具有匹配的前缀时:
SELECT users.nb,prefix.area
FROM users
LEFT OUTER JOIN prefix
ON (instr(prefmap.prefix,users.nb)=1)
我在第 4 行收到错误“在 Join '1' 中遇到左右别名)
我怎样才能让它工作? 我正在使用蜂巢 0.9 感谢您的建议。
【问题讨论】:
标签: join hive user-defined-functions hiveql