I 2 Datenrahmen habenSpaltenwerte in Funken Einstürzen Datenrahmen
case class UserTransactions(id: Long, transactionDate: java.sql.Date, currencyUsed: String, value: Long)
ID, TransactionDate, CurrencyUsed, value
1, 2016-01-05, USD, 100
1, 2016-01-09, GBP, 150
1, 2016-02-01, USD, 50
1, 2016-02-10, JPN, 10
2, 2016-01-10, EURO, 50
2, 2016-01-10, GBP, 100
case class ReportingTime(userId: Long, reportDate: java.sql.Date)
userId, reportDate
1, 2016-01-05
1, 2016-01-31
1, 2016-02-15
2, 2016-01-10
2, 2016-02-01
Jetzt möchte ich Zusammenfassung erhalten, indem alle bisher verwendeten Währungen von userId
, reportDate
und sum
kombiniert. Die Ergebnisse sollten wie folgt aussehen:
userId, reportDate, trasactionSummary
1, 2016-01-05, None
1, 2016-01-31, (USD -> 100)(GBP-> 150) // combined above 2 transactions less than 2016-01-31
1, 2016-02-15, (USD -> 150)(GBP-> 150)(JPN->10) // combined transactions less than 2016-02-15
2, 2016-01-10, None
2, 2016-02-01, (EURO-> 50) (GBP-> 100)
Was ist der beste Weg, dies zu tun? Wir haben über 300 Millionen Transaktionen, bei denen jeder Benutzer bis zu 10.000 Transaktionen haben kann.
In Ihrem Beispiel Ausgabe, warum zeigen Sie 'None' für' reportDate's, die die entsprechen 1. Transaktion im 'UserTransactions' Dataframe? Möchten Sie die erste Transaktion immer überspringen? – Metropolis
Wie in der ersten Transaktion Benutzer hat keine Geschichte so in der Zusammenfassung zeigt es keine und aus der zweiten Transaktion wird es eine Zusammenfassung haben wie (USD -> 100) (GBP-> 150) – Rahul