2016-09-02 4 views
1

私は2つの異なる時系列データを持つ2つのDataFramesを持っています。わかりやすくするために、EventsStatusとしましょう。Timestampの違いに基づいて2つのDateFramesを効率的に結合する方法は?

events: 
root 
|-- timestamp: timestamp (nullable = true) 
|-- event_type: string (nullable = true) 
|-- event_id: string (nullable = true) 

statuses: 
root 
|-- timestamp: timestamp (nullable = true) 
|-- status: string (nullable = true) 
|-- field1: string (nullable = true) 
|-- field2: string (nullable = true) 
|-- field3: string (nullable = true) 

私はすべてのEventが自身のタイムスタンプの前のXの時間にステータスのすべてのオブジェクトを含むlist_statusesの列を持つことになりますそれらを結合したいと思います。

eventsstatusesの直方体とそれに続くとで時間基準はできますが、(非常に)非効率です。

もっと良い方法がありますか?何も既製品ですか?

(私は両方のデータフレームを時間ウィンドウでグループ化し、次に現在のウィンドウと前の時間ウィンドウの両方を含むように自己結合し、それらとフィルタの間に参加することを考えましたが、フリー、私は喜んで使用します...)

ありがとう!

答えて

0

ほぼ2ヶ月後、私は私が私が得た何かを投稿した場合、それは他の人を助けるかもしれないと思った:タイムスタンプに基づいて2つのデータセット間の範囲-参加の

http://zachmoshe.com/2016/09/26/efficient-range-joins-with-spark.html

それは基本的に、より効率的な実装か数値フィールド(Scala、Spark 2.0)。

関連する問題