1
私は、pysparkデータフレーム内に、エンジンのイベント「startup」、「shutdown」、および「other」を表す値1、-1および0の列を持っています。 1と-1,2が常に入れ替わる場合ウィンドウ関数による飽和和を設計する
+---+-----+-----+
|seq|event|state|
+---+-----+-----+
| 1 | 1 | 1 |
| 2 | 0 | 1 |
| 3 | -1 | 0 |
| 4 | 0 | 0 |
| 5 | 0 | 0 |
| 6 | 1 | 1 |
| 7 | -1 | 0 |
+---+-----+-----+
、これは簡単に行うことができます:それは何かのように、オフだとき、私はエンジンがオンのとき1で、エンジンの状態を持つ列を構築したいと0ウィンドウ関数で、このような
sum('event').over(Window.orderBy('seq'))
ように、私が私が状態1または0ですでに午前た場合、それぞれ、無視したいいくつかの偽の1秒または-1,2を、持っていること、しかし、発生する可能性があります。私はこのようにような何かを行うことができるようにしたい:私は現時点では想像することはできませんよ1以上または0を下回ることはありません「飽和」SUM関数、または他のいくつかのアプローチが必要になり
+---+-----+-----+
|seq|event|state|
+---+-----+-----+
| 1 | 1 | 1 |
| 2 | 0 | 1 |
| 3 | 1 | 1 |
| 4 | -1 | 0 |
| 5 | 0 | 0 |
| 6 | -1 | 0 |
| 7 | 1 | 1 |
+---+-----+-----+
。
他にもアイデアはありますか?