上の文字列を変換: 20151201,20151205,1 20160102,20160214,0
私はハイブの表に以下のような文字列をHAVAハイブ
私のような何かにそれを変換したい:私はの一つまたは多くのペアを持っているかもしれ 20151201,20151205:1 20160102,20160214:0
日付の後にコンマを1または0で続けます。
ありがとうございます。 SMRカンマ区切りの日付のサブストリングの最後の0または1空間(またはラインの終わり)が続いていると仮定すると
上の文字列を変換: 20151201,20151205,1 20160102,20160214,0
私はハイブの表に以下のような文字列をHAVAハイブ
私のような何かにそれを変換したい:私はの一つまたは多くのペアを持っているかもしれ 20151201,20151205:1 20160102,20160214:0
日付の後にコンマを1または0で続けます。
ありがとうございます。 SMRカンマ区切りの日付のサブストリングの最後の0または1空間(またはラインの終わり)が続いていると仮定すると
...
変更
,(\d)\b
のすべてのインスタンス
:$1
以上狭く
に、あなたは,(0|1)\b
を使用することができます。あなたの例に基づいていますが、どちらも同じ結果になります。
はい、コンマ区切りの日付の部分文字列の最後の0または1には常にスペースが続きます。 –
私はあなたの提案を試みましたが、私はエラーがあります。ハイブ> regexp_replace( "20151201,20151205,1 20160102,20160214,0"、(0 | 1)\ b、:\ 1)をピリオドとして選択します。 NoViableAltException(9 @ [127:1:selectItem:((tableAllColumns)=> tableAllColumns - > ............................ ..................... org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util。 RunJar.main(RunJar.java:136) 行1:73は ':' '1' 'の近くの入力を認識できません)'、 'の近くの' b 'にある FAILED:ParseException line 1:71 missing)'選択対象 –
split関数とconcat_ws関数の組み合わせを使用できます。最初に分割し、次の基準に基づいてセパレータと連結します。
あなたは 'regexp_replace(string INITIAL_STRING、string PATTERN、string replace)'を試すことができます。 –