如何计算每个客户的账单总数?

时间:2016-12-14 12:56:33

标签: pyspark

我有两个数据集,一个是客户及其各自的账单,其中包含以下元素:“账单数量”,“日期”,“客户”,“导入”,其他数据集是按年龄分组的客户。 / p>

****一个例子:****

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

2nd Dataset 
u'C1,20' 

我已经解析了两个数据集来选择对我的主题重要的数据。这是代码

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或flatmap。如果你能帮助我,我将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:0)

这应该有效:

Age_Bills.map(lambda x: (x[1][1], 1)).reduceByKey(lambda x, y: x + y)