2016-12-14 2 views
0

Ich habe zwei Datensätze, einen der Kunden mit ihren jeweiligen Rechnungen, mit den folgenden Elementen: "Nummer der Rechnung", "Datum", "Client", Import "und der andere Datensatz sind die Clients nach Alter gruppiert.Wie berechnet man die Gesamtanzahl der Rechnungen pro Kunde?

**** Ein Beispiel:. ****

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

2nd Dataset 
u'C1,20' 

ich die beiden Daten analysiert haben, stellen Sie die Daten von Bedeutung zu meinem Thema wählen Hier ist der Code

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) 

Eine Probe wie folgt:

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')) 

Jetzt möchte ich die Anzahl der Rechnungen pro Alter zählen, aber ich weiß nicht weiter. Ich habe über die Verwendung von KeyReduce oder Flatmap nachgedacht. Ich wäre dankbar, wenn Sie mir helfen könnten.

Danke,

Antwort

0

Diese Arbeit sollte:

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