でURLを短縮:私は今、何をしたいかは、個別に、私は次の構造のURLを持っているハイブ
https://pinball.globalzone.com/en_US/home?tic=1-dj33jl-dj33jl&goToRegisterNow=true
は、グループのことができるようにするためのURLを短くし、類似のURLパターンを数えることです。たとえば、https://
、ロケールen_US/
、トークン?tic=1-dj33jl-dj33jl
を切り捨てたいと思います。次のように結果が見えるはずです。
pinball.globalzone.com/home&goToRegisterNow=true
を私はregexp_extract
を使用してそれを達成しようとしましたが、この方法は、私だけは、同じ位置に常にある特定の部分を抽出することができます。
大きな問題は、切り抜きたい部分が個別/ルールベース(ロケールは常に2つの小文字と2つの大文字がアンダースコアで区切られています)すなわちトークン)。
さらに、私の結果セットには、既存の部分のみを切り詰めたい別のパターンのURLも含まれています(https://pinball.globalzone.com/en_US/forgottenPassword
、en_US/
のみ切り捨てる必要があります)。
問題をすばやく解決しなければならない場合は、URLを取得して、取得URLを分割して配列全体を反復処理するJavaまたはRコードを記述します。しかし、この結果をHiveからまっすぐに得るためのよりエレガントな方法があるかどうかは疑問でした。
(?:https?:\/\/|\/[a-z]{2}_[A-Z]{2}|[?&]tic=[^&?]*)
についてそれはあなたが不要なように説明しました部品と一致して何
は、常に最初のパラメータトークンですか? – ClasG
2番目の例で 'https://'を削除してはいけませんか? – ClasG
はい、 'tic ='は常にトークンを識別します。 2番目の例は、何かをカットする前のベースURLを表しています。しかし、はい、 'https:// 'も削除する必要があります。 – jd1338