2017-03-17 8 views
3

レコードに5列の最初の列の値が同じ4列のcsvデータがあります。次の5行の最初の列と同じように値が変わります。NiFiプロセッサを使用してcsvデータをグループ化する

サンプルデータ:

a,21,51,xxx 
a,22,52,xxx 
a,23,53,xxx 
a,24,54,xxx 
a,25,55,xxx 
b,21,61,yyy 
b,22,62,yyy 
b,23,63,yyy 
b,24,64,yyy 
b,25,65,yyy 
........... 

しかし、時には、レコードのように任意で来る:

a,21,51,xxx 
a,22,52,xxx 
a,23,53,xxx 
b,21,61,yyy 
b,22,62,yyy 
a,24,54,xxx 
a,25,55,xxx 
b,23,63,yyy 
b,24,64,yyy 
b,25,65,yyy 
........... 

がNiFiプロセッサを使用して、その最初の列に基づいて、このようなデータをグループ化する方法はありますか?

回答が参考になります。言うあなたがグループ化正規表現を使用してRouteTextプロセッサでこれを行うことができるはず

おかげ

+0

その式これはあなたのユースケースの権利ですか? –

+0

はい、それは私のユースケースです –

答えて

3

、:

は「 に各行に対して評価するために、正規表現を指定するには、どのグループを決定しますRegular Expressionには、ラインのグループ を定義するキャプチャグループが少なくとも1つ必要です。Regular Expressionに複数のキャプチャグループが存在する場合は、すべてのキャプチャグループのグループ2つのラインは01になりません同じFlowFileにが配置されている場合、それらのグループの両方で同じ値( )が指定されていないか(またはいずれの行も正規表現に一致しない) の例では、CSVファイルのすべての行を最初の 列でグループ化するには、この値を "(。?)、"に設定します。 同じグループを持っていますが、別の関係が 同じFlowFileに置かれることはありません二行。」

私はあなたがマッチする正規表現のマッチング戦略と一緒にそれを使用し、ちょうど使用することができると思う。*のために行の最初の列場合は、グループに行を望んでいる,.(?。)グループ化式は、最初の列でグループに上記の例を使用するためのその後

。すべての行が一致するように

+0

私は上記の解決法を使用しましたが、いくつかの変更がありました。表現式をグループ化するために:(。*?)、。* –

+0

タイムリーな助けをありがとう。 –

関連する問題