我正在尝试使用 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 行收到错误“在加入‘1’中遇到左右别名)
我怎样才能让它工作?我正在使用 hive 0.9 感谢您的任何建议。