結合キーを伴わない結合をする際のDSL記述方法について

50 views
Skip to first unread message

teppei tosa

unread,
May 7, 2013, 1:56:08 AM5/7/13
to us...@asakusafw.com

土佐です。
度々すみません。

基本的なことが分かっていないだけかもしれませんが、
以下のような処理を行いたい場合のDSLの記述方法について教えてください。

IN_A.csvとIN_B.csvのデータを結合して、OUT.csvを出力したいです。

~~~~~~~~~~~~~~~~~~~~~~~~~

IN_A.csv

card_id, datetime, flg

"001", "2013/05/01 13:00", "on"

"002", "2013/05/01 13:10", "off"

"003", "2013/05/01 13:33", "on"


IN_B.csv

user_id, datetime, code

002, 201305011300, a

003, 201305011304, b

001, 201305011330,   a

~~~~~~~~~~~~~~~~~~~~~~~~~

以上のように、微妙にカラム構成やデータフォーマットが違うデータを結合して、
以下のようなデータを出力します。

~~~~~~~~~~~~~~~~~~~~~~~~~

OUT.csv

user_id, datetime, on_off, from

001, 2013/05/01 13:00, on, A

002, 2013/05/01 13:10, off, A

003, 2013/05/01 13:33, on, A

002, 2013/05/01 13:00, on, B

003, 2013/05/01 13:04, off, B

001, 2013/05/01 13:30,   on, B

~~~~~~~~~~~~~~~~~~~~~~~~~

この際、DSLはどのように記載すればいいでしょうか。

結合モデル定義のサンプルにあるような、結合キーが無い状態です。

試しに以下のように記載してみましたが、generateでエラーとなりました。

~~~~~~~~~~~~~~~~~~~~~~~~~

joined joined_data = in_a -> {

card_id -> user_id;

datetime -> datetime;

flg -> on_off;

"A" -> from

} + in_b -> {

user_id -> user_id;

datetime -> datetime;

code -> on_off;

"B" -> from

}

~~~~~~~~~~~~~~~~~~~~~~~~~

宜しく御願い致します。



古山慎悟

unread,
May 7, 2013, 9:57:00 PM5/7/13
to teppei tosa, us...@asakusafw.com
土佐さん、

タイトルと例示から意図を察した範囲でですが、
やりたいことは結合ではなくデータの合流ではないかと思います。

合流を行う際には合流させるデータすべてについて同一の型である必要があるので、
変換演算子・拡張演算子・射影演算子・再構築演算子のいずれかで型変換を行う必要があります。

合流演算子については下記のドキュメントを参照してください。

変換演算子・拡張演算子・射影演算子・再構築演算子については下記のドキュメントを参照してください。

古山

2013年5月7日 14:56 teppei tosa <ironp...@gmail.com>:

--
このメールは Google グループのグループ「Asakusa Frameworkメーリングリスト」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、users+un...@asakusafw.com にメールを送信します。
このグループに投稿するには、us...@asakusafw.com にメールを送信してください。
http://groups.google.com/a/asakusafw.com/group/users/?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/a/asakusafw.com/groups/opt_out にアクセスしてください。
 
 

Reply all
Reply to author
Forward
0 new messages