2

Hive スクリプトを使用して、ドメイン「com」の横にある以下の URL を切り捨てるにはどうすればよいですか。つまり、あなたは tube.com のみ

    http://www.youtube.com/video/AiL6nL
    http://www.yahoo.com/video/Hhj9B2
    http://www.youtube.com/video/MpVHQ
    http://www.google.com/video/PGuTN
    http://www.youtube.com/video/VU34MI

このように切り詰めることは可能ですか?

4

5 に答える 5

3

試す

select split(url, '/')[0] from mytable

どこmytableにあなたのテーブルがありurl、あなたの質問でサンプリングされたデータを含む列です.

于 2013-06-10T03:34:21.863 に答える
2

Hive UDF の使用をお勧めします。

parse_url(文字列 urlString, 文字列 partToExtract [, 文字列 keyToExtract])

URLから指定部分を返します。partToExtract の有効な値には、HOST、PATH、QUERY、REF、PROTOCOL、AUTHORITY、FILE、および USERINFO が含まれます。例えば

parse_url(' http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1 ', 'HOST') は 'facebook.com' を返します。また、QUERY の特定のキーの値は、キーを 3 番目の引数として指定することで抽出できます。 ', 'k1') は 'v1' を返します。

ありがとう、ディノ

于 2013-06-10T07:23:34.593 に答える
2

case ステートメントを使用します。

CASE WHEN parse_url((url), 'HOST') is NULL THEN url ELSE parse_url((url), 'HOST') END as parsed_url
于 2013-06-11T05:36:23.360 に答える
0

「youtube.com/video/nvRuX9h2」と「probuilds.net」の両方を処理するには:

select split(concat(url,'/'), '/')[0] from mytable
于 2013-06-10T12:37:23.313 に答える