ファイルを指定した数のファイルに分割する。f=を指定した場合にはその項目値が等しいものは同一ファイルに含まれる。
mshuffle n=|v= d= [f=] [i=] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]
d= |
出力するファイル名の接頭辞を指定する |
ここで指定した値+連番が実際に出力されるファイル名になる |
|
f= |
分割単位となるキーを指定する |
ここで指定した項目値が等しいものは同じファイルに出力される |
|
n= |
分割するファイル数を指定する |
v= |
分割するファイルごとにデータ量の重みを指定する |
重みを指定しなかった場合すべて同じ重みとなる。f=に指定した項目値によっては指定した重み通りの結果にならない場合がある
2つのファイルに分割する
$ more dat1.csv 顧客,数量,金額 A,20,5200 B,18,4000 C,15,3500 D,10,2000 E,3,800 $ mshuffle d=./dat/d n=2 i=dat1.csv #END# kgshuffle d=./dat/d i=dat1.csv n=2 $ ls ./dat d_0 d_1 $ more ./dat/d_0 顧客,数量,金額 B,18,4000 D,10,2000 $ more ./dat/d_1 顧客,数量,金額 A,20,5200 C,15,3500 E,3,800
指定した項目の値が同じファイルに出力にされるように2つのファイルに分割する
$ more dat2.csv 顧客,日付,金額 A,20081201,10 A,20081207,20 A,20081213,30 B,20081002,40 B,20081209,50 C,20081003,60 C,20081219,20 $ mshuffle f=顧客 d=./dat/d n=2 i=dat2.csv #END# kgshuffle d=./dat/d f=顧客 i=dat2.csv n=2 $ ls ./dat d_0 d_1 $ more ./dat/d_0 顧客,日付,金額 B,20081002,40 B,20081209,50 $ more ./dat/d_1 顧客,日付,金額 A,20081201,10 A,20081207,20 A,20081213,30 C,20081003,60 C,20081219,20
重みで2つのファイルのデータ量を指定して分割する
$ more dat1.csv 顧客,数量,金額 A,20,5200 B,18,4000 C,15,3500 D,10,2000 E,3,800 $ mshuffle d=./dat/d v=2,1 i=dat1.csv #END# kgshuffle d=./dat/d i=dat1.csv v=2,1 $ ls ./dat d_0 d_1 $ more ./dat/d_0 顧客,数量,金額 A,20,5200 C,15,3500 D,10,2000 $ more ./dat/d_1 顧客,数量,金額 B,18,4000 E,3,800
重みで2つのファイルのデータ量を指定して分割する
$ more dat2.csv 顧客,日付,金額 A,20081201,10 A,20081207,20 A,20081213,30 B,20081002,40 B,20081209,50 C,20081003,60 C,20081219,20 $ mshuffle f=顧客 d=./dat/d v=2,1 i=dat2.csv #END# kgshuffle d=./dat/d f=顧客 i=dat2.csv v=2,1 $ ls ./dat d_0 d_1 $ more ./dat/d_0 顧客,日付,金額 B,20081002,40 B,20081209,50 C,20081003,60 C,20081219,20 $ more ./dat/d_1 顧客,日付,金額 A,20081201,10 A,20081207,20 A,20081213,30
msep : 項目値によるレコードの分割