2016-08-19 9 views
0

hiveテーブルの特定の列のすべての値をregex_replaceを使用してランダムな値に置き換えます。HIVEテーブルの文字列とint値を置き換えます

どうすればいいですか?

我々はシェルスクリプトで行うようなその類似した: -

tr '[a-j]' '[j-s]'  

または

tr '[1-4]' '[5-8]' 

またはハイブ内の値を交換する他の方法があります。

私は

select cust_id, regexp_replace(cust_id, '23456', '74563') as cust_id from cust_table; 

を使用して1つの値を置き換えることができますが、私は、ランダムな数字で100行のすべての値を置き換えたいです。

+0

として丸めた値を返します。乱数との衝突、あなたは同じ数字を繰り返したくないと仮定しています。 – invoketheshell

+0

いいえ同じ番号を繰り返したくないです。番号は毎回異なるはずです。 – Pooja

答えて

0

これに正規表現は必要ありませんが、randroundの組み合わせを使用して、各行の乱数を生成することができます。あなたは0と10000の間の乱数を生成したい場合たとえば、:

select round(rand() * 10000) as cust_id from cust_table 

rand 1から0からランダムダブル戻り、roundの小さなチャンスがあるかもしれませんBIGINT

+0

テーブルを乱数で恒久的に更新できますか? – Pooja

関連する問題