편집 된시기를 기준으로 메시지 이벤트의 DataFrame에서 항목을 필터링하고 싶습니다. 메시지 이벤트가있는 DataFrame과 편집 된시기를 나타내는 다른 DataFrame이 있습니다. 편집 된 테이블에 일치하는 인덱스가 있고 메시지 테이블의 타임 스탬프가 해당 편집 이벤트 아래에있는 경우 삭제는 메시지 테이블의 행을 삭제해야합니다.
편집 된 데이터 프레임은 다음과 같습니다.
+----------+-------------------+
| timestamp|index |
+----------+-------------------+
|1556247980| 78|
|1558144430| 87|
|1549964820| 99|
+----------+-------------------+
메시지 DataFrame은 다음과 같습니다.
+-------------------+--------------------+------------------+--------------------+
|index | commonResponseText|publishedTimestamp| commonResponseText|
+-------------------+--------------------+------------------+--------------------+
| 78|Voluptatem enim a...| 1556247974|Voluptatem enim a...|
| 87|Ut enim enim sunt...| 1558144420|Ut enim enim sunt...|
| 99|Et est perferendi...| 1549964815|Et est perferendi...|
| 78|Voluptatem porro ...| 1556248000|Voluptatem porro ...|
| 87|Atque quod est au...| 1549965000|Atque quod est au...|
+-------------------+--------------------+------------------+--------------------+
결과는 다음과 같습니다.
+-------------------+--------------------+------------------+--------------------+
|commonResponseIndex| index |publishedTimestamp| commonResponseText|
+-------------------+--------------------+------------------+--------------------+
| 78|Voluptatem porro ...| 1556248000|Voluptatem porro ...|
| 87|Atque quod est au...| 1549965000|Atque quod est au...|
+-------------------+--------------------+------------------+--------------------+
도와 주셔서 감사합니다!
내가 한 일은 다음과 같습니다.
val editedDF = Seq(("A",3),("B",3)).toDF("id","timestamp")
val messageDF = Seq(("A",2),("B",2),("A",2),("A",3),("B",4),("A",2),("B",2),("c",9)).toDF("id","timestamp")
마지막으로이 조인을 사용했습니다.
// Filter out the edited meesages.
val editedFilteredDF = messageDF.join(editedDF,
(editedDF("id") === messageDF("id")) && (editedDF("timestamp") > messageDF("timestamp")),
joinType="left_anti")
결과:
editedFilteredDF.show()
+---+---------+
| id|timestamp|
+---+---------+
| A| 3|
| B| 4|
| c| 9|
+---+---------+
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다