1
Spark-Scalaを使用してトランザクションごとに過去1時間の合計を計算します。私は三つのフィールドでデータフレームを、次のと下記のように、第4のフィールドを計算したいいる:
Customer TimeStamp Tr Last_1Hr_RunningSum
Cust-1 6/1/2015 6:51:55 1 1
Cust-1 6/1/2015 6:58:34 3 4
Cust-1 6/1/2015 7:20:46 3 7
Cust-1 6/1/2015 7:40:45 4 11
Cust-1 6/1/2015 7:55:34 5 15
Cust-1 6/1/2015 8:20:34 0 12
Cust-1 6/1/2015 8:34:34 3 12
Cust-1 6/1/2015 9:35:34 7 7
Cust-1 6/1/2015 9:45:34 3 10
Cust-2 6/1/2015 16:26:34 2 2
Cust-2 6/1/2015 16:35:34 1 3
Cust-2 6/1/2015 17:39:34 3 3
Cust-2 6/1/2015 17:43:34 5 8
Cust-3 6/1/2015 17:17:34 6 6
Cust-3 6/1/2015 17:21:34 4 10
Cust-3 6/1/2015 17:45:34 2 12
Cust-3 6/1/2015 17:56:34 3 15
Cust-3 6/1/2015 18:21:34 4 13
Cust-3 6/1/2015 19:24:34 1 1
私は顧客IDによって各トランザクションから一時間振り返った新しいフィールドとして「Last_1Hr_RunningSum」を計算してのいくつかを取りたいです"Tr"(Transaction filed)。例えばSpark Scalaを使用した最後の1時間トランザクションの合計
- :得意先-1 2015年6月1日8時20分34秒では2015年6月1日7時20分46秒まで振り返ると(0 + 5 + 4 + 3)の合計を取ります= 12.
- 各行と同じ方法1時間振り返って、その1時間にすべてのトランザクションを合計します。
入れ子になったクエリでsqlContext.sqlを実行しようとしましたが、エラーが発生しました。また、Spark-Scala SQLContextでは、ウィンドウ関数とパーティション上の行番号はサポートされていません。
Spark-Scalaで「TimeStamp」列を使用して「Tr」から最後の1時間の合計を取得するにはどうすればよいですか。
ありがとうございます。
(このソリューションは、ミリ秒単位で指定された時間を想定しています)、期待されるデータ –
@AlbertoBonsantoサンプルデータのインデントとフォーマットを修正しました。入力テーブルは最初の3つのフィールドになり、期待される出力テーブルは追加フィールド "Last_1Hr_RunningSum"となります。 – Nikhil
"ネストされたクエリーでsqlContext.sqlを実行しようとしましたが、エラーが発生しました。"どのクエリーを試してみたのですか? –