2016-12-14 4 views
0

私は2つのデータセットを持っています.1つは、それぞれの請求書のクライアントで、「請求書番号」、「日付」、「クライアント」、「インポート」という要素があり、その他のデータセットは年齢順にグループ化されたクライアントです。クライアントごとの請求書の総数はどのように計算されますか?

****例:****

1st Dataset    
u'F1,01/01/2013,C1,11' 

2nd Dataset 
u'C1,20' 

私は私の対象に重要のデータを選択するように設定された2つのデータを解析されてきたここでは、コード

def parseClients(clients): 
    fields=clients.split(",") 
    return (fields[0], fields[1]) 

def parseBill(bill): 
    fields=bill.split(",") 
    return (fields[2], bill) 

new_bills=bills.map(parseBill) 
new_clients=clients.map(parseClients) 

Age_Bills=new_bills.join(new_clients) 

サンプルがあります。次のようになります。

Age_Bills.take(10): 
(u'C856', (u'F2982,06/01/2013,C856,88', u'81')) 
(u'C856', (u'F11953,22/01/2013,C856,87', u'81')) 
(u'C856', (u'F12893,24/01/2013,C856,10', u'81')) 
(u'C856', (u'F12913,24/01/2013,C856,41', u'81')) 
(u'C856', (u'F17883,02/02/2013,C856,45', u'81')) 
(u'C856', (u'F17895,02/02/2013,C856,75', u'81')) 
(u'C856', (u'F18867,04/02/2013,C856,105', u'81')) 
(u'C856', (u'F21864,09/02/2013,C856,26', u'81')) 
(u'C856', (u'F30889,26/02/2013,C856,154', u'81')) 
(u'C856', (u'F49990,02/04/2013,C856,90', u'81')) 

今、私は年齢ごとに の請求書を数えたいと思いますが、私はどのように続行するのか分かりません。私はKeyReduceまたはフラットマップの使用について考えました。あなたが私を助けることができれば、私は感謝しています。

おかげで、

答えて

0

これは動作するはずです:

Age_Bills.map(lambda x: (x[1][1], 1)).reduceByKey(lambda x, y: x + y) 
関連する問題