Hiveを使用して電話番号を地域に一致させようとしています。番号プレフィックス(prefix)をエリア(area)にマップするテーブル(prefmap)と、電話番号(nb)のリストを含む別のテーブル(users)があります。電話番号ごとに一致するのは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)
line4でエラーが発生します"Join'1'で左と右の両方のエイリアスが見つかりました)
どうすればこれを機能させることができますか?私はハイブ0.9を使用しています。アドバイスをありがとう。