Spark Yarn Java Out Of Memory on Complex Query Execution Plan

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Spark Yarn Java Out Of Memory on Complex Query Execution Plan

nimmi.cv
Exception in thread "main" java.lang.OutOfMemoryError at 
java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:161) 
at 
java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:155) 
at 
java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) 
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) at 
java.lang.StringBuilder.append(StringBuilder.java:136) at 
java.lang.StringBuilder.append(StringBuilder.java:131) at 
scala.StringContext.standardInterpolator(StringContext.scala:125) at 
scala.StringContext.s(StringContext.scala:95) at 
org.apache.spark.sql.execution.QueryExecution.toString(QueryExecution.scala:230) 
at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:54) 
at org.apache.spark.sql.Dataset.withNewExecutionId(Dataset.scala:2788) at 
org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$execute$1(Dataset.scala:2385) 
at 
org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collect(Dataset.scala:2392) 
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2420) 
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2419) 
at org.apache.spark.sql.Dataset.withCallback(Dataset.scala:2801) at 
org.apache.spark.sql.Dataset.count(Dataset.scala:2419) at 
com.samsung.cloud.mopay.linking.controller.PostNotificLinkController.linkPostNotific(PostNotificLinkController.java:51) 
at 
com.samsung.cloud.mopay.linking.txn.TxnLinking.performTxnLinking(TxnLinking.java:26) 
at com.samsung.cloud.mopay.linking.Linking.processData(Linking.java:199) at 
com.samsung.cloud.mopay.linking.Linking.main(Linking.java:72) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) at 
org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:743) 
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) 
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at 
org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at 
org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 


I tried increasing 
spark.driver.memory = 50g 
spark.yarn.driver.memoryOverhead = 80g 

Any help appreciated. I am stuck here for a while. 

Thanks,
Nimmi
Reply | Threaded
Open this post in threaded view
|

Re: Spark Yarn Java Out Of Memory on Complex Query Execution Plan

nimmi.cv
Hi Naga,

I am running on SqlContext. When I try to print the query plan.
I see that the execution plan is too big. It never proceeds to the next step after this


== Physical Plan ==
Union
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#230, rank_by_attempt#277, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#230, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#230], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- *Project [id#30 AS wsid#164, loggedat#31 AS wsloggedat#165, tokenid#32, id#23 AS poid#167, loggedat#24 AS pologgedat#168, abs((unix_timestamp(loggedat#24, yyyy-MM-dd HH:mm:ss) - unix_timestamp(loggedat#31, yyyy-MM-dd HH:mm:ss))) AS diff_loggedat#169L, createdat#33 AS wscreatedat#170]
:                             +- *SortMergeJoin [tokenid#32], [tokenid#25], Inner, (abs((unix_timestamp(loggedat#24, yyyy-MM-dd HH:mm:ss) - unix_timestamp(loggedat#31, yyyy-MM-dd HH:mm:ss))) < 301)
:                                :- *Sort [tokenid#32 ASC NULLS FIRST], false, 0
:                                :  +- Exchange hashpartitioning(tokenid#32, 200)
:                                :     +- *Filter isnotnull(tokenid#32)
:                                :        +- InMemoryTableScan [id#30, loggedat#31, tokenid#32, createdat#33], [isnotnull(tokenid#32)]
:                                :              +- InMemoryRelation [id#30, loggedat#31, tokenid#32, createdat#33], true, 10000, StorageLevel(memory, 1 replicas)
:                                :                    +- *Scan RedshiftRelation((SELECT id, loggedat, tokenid, createdat from public.trs_fact_ws_notification where loggedat BETWEEN '2017-04-30 23:59:59' and '2017-09-10 22:58:36' and id not in (select trsfactwsnotificationid from public.test_dup_2loop where trsfactwsnotificationid is not null) and transactionoob=false and event='TRANSACTION')) [id#30,loggedat#31,tokenid#32,createdat#33] ReadSchema: struct<id:string,loggedat:timestamp,tokenid:string,createdat:timestamp>
:                                +- *Sort [tokenid#25 ASC NULLS FIRST], false, 0
:                                   +- Exchange hashpartitioning(tokenid#25, 200)
:                                      +- *Filter isnotnull(tokenid#25)
:                                         +- InMemoryTableScan [id#23, loggedat#24, tokenid#25], [isnotnull(tokenid#25)]
:                                               +- InMemoryRelation [id#23, loggedat#24, tokenid#25], true, 10000, StorageLevel(memory, 1 replicas)
:                                                     +- *Scan RedshiftRelation((SELECT id, loggedat, tokenid from public.trs_fact_txn_postattempt where loggedat BETWEEN '2017-04-30 23:59:59' and '2017-09-10 22:58:36' and id not in (select trsfacttxnpostattemptid from public.test_dup_2loop where trsfacttxnpostattemptid is not null))) [id#23,loggedat#24,tokenid#25] ReadSchema: struct<id:string,loggedat:timestamp,tokenid:string>
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#760, rank_by_attempt#877, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#760, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#760], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#364], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#363], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#363 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#363, 200)
:                             :              +- *Project [wsid#377 AS linkedwsid#363]
:                             :                 +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                    +- Window [row_number() windowspecdefinition(poid#380, diff_loggedat#382L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#380], [diff_loggedat#382L ASC NULLS FIRST]
:                             :                       +- *Sort [poid#380 ASC NULLS FIRST, diff_loggedat#382L ASC NULLS FIRST], false, 0
:                             :                          +- Exchange hashpartitioning(poid#380, 200)
:                             :                             +- *Project [wsid#377, poid#380, diff_loggedat#382L, diff_loggedat#382L, diff_loggedat#382L, rank_by_notification#230]
:                             :                                +- Window [row_number() windowspecdefinition(wsid#377, diff_loggedat#382L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#230], [wsid#377], [diff_loggedat#382L ASC NULLS FIRST]
:                             :                                   +- *Sort [wsid#377 ASC NULLS FIRST, diff_loggedat#382L ASC NULLS FIRST], false, 0
:                             :                                      +- Exchange hashpartitioning(wsid#377, 200)
:                             :                                         +- *Project [id#30 AS wsid#377, id#23 AS poid#380, abs((unix_timestamp(loggedat#24, yyyy-MM-dd HH:mm:ss) - unix_timestamp(loggedat#31, yyyy-MM-dd HH:mm:ss))) AS diff_loggedat#382L]
:                             :                                            +- *SortMergeJoin [tokenid#32], [tokenid#25], Inner, (abs((unix_timestamp(loggedat#24, yyyy-MM-dd HH:mm:ss) - unix_timestamp(loggedat#31, yyyy-MM-dd HH:mm:ss))) < 301)
:                             :                                               :- *Sort [tokenid#32 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(tokenid#32, 200)
:                             :                                               :     +- *Filter isnotnull(tokenid#32)
:                             :                                               :        +- InMemoryTableScan [id#30, loggedat#31, tokenid#32], [isnotnull(tokenid#32)]
:                             :                                               :              +- InMemoryRelation [id#30, loggedat#31, tokenid#32, createdat#33], true, 10000, StorageLevel(memory, 1 replicas)
:                             :                                               :                    +- *Scan RedshiftRelation((SELECT id, loggedat, tokenid, createdat from public.trs_fact_ws_notification where loggedat BETWEEN '2017-04-30 23:59:59' and '2017-09-10 22:58:36' and id not in (select trsfactwsnotificationid from public.test_dup_2loop where trsfactwsnotificationid is not null) and transactionoob=false and event='TRANSACTION')) [id#30,loggedat#31,tokenid#32,createdat#33] ReadSchema: struct<id:string,loggedat:timestamp,tokenid:string,createdat:timestamp>
:                             :                                               +- *Sort [tokenid#25 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [id#23, loggedat#24, tokenid#25], Exchange hashpartitioning(tokenid#25, 200)
:                             +- *Sort [linkedpoid#364 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#364, 200)
:                                   +- *Project [poid#494 AS linkedpoid#364]
:                                      +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                         +- Window [row_number() windowspecdefinition(poid#494, diff_loggedat#496L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#494], [diff_loggedat#496L ASC NULLS FIRST]
:                                            +- *Sort [poid#494 ASC NULLS FIRST, diff_loggedat#496L ASC NULLS FIRST], false, 0
:                                               +- Exchange hashpartitioning(poid#494, 200)
:                                                  +- *Project [poid#494, diff_loggedat#496L, diff_loggedat#496L, diff_loggedat#496L, rank_by_notification#230]
:                                                     +- Window [row_number() windowspecdefinition(wsid#491, diff_loggedat#496L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#230], [wsid#491], [diff_loggedat#496L ASC NULLS FIRST]
:                                                        +- *Sort [wsid#491 ASC NULLS FIRST, diff_loggedat#496L ASC NULLS FIRST], false, 0
:                                                           +- ReusedExchange [wsid#491, poid#494, diff_loggedat#496L], Exchange hashpartitioning(wsid#377, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#2296, rank_by_attempt#2693, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#2296, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#2296], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#1151], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#1150], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#1150 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#1150, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#1164 AS linkedwsid#1150]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#1167, diff_loggedat#1169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#1167], [diff_loggedat#1169L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#1167 ASC NULLS FIRST, diff_loggedat#1169L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#1164, poid#1167, diff_loggedat#1169L, diff_loggedat#1169L, diff_loggedat#1169L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 +- *Project [wsid#1164 AS linkedwsid#1150]
:                             :                    +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#1167, diff_loggedat#1169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#1167], [diff_loggedat#1169L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#1167 ASC NULLS FIRST, diff_loggedat#1169L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#1167, 200)
:                             :                                +- *Project [wsid#1164, poid#1167, diff_loggedat#1169L, diff_loggedat#1169L, diff_loggedat#1169L, rank_by_notification#760]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#1164, diff_loggedat#1169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#760], [wsid#1164], [diff_loggedat#1169L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#1164 ASC NULLS FIRST, diff_loggedat#1169L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#1164, 200)
:                             :                                            +- SortMergeJoin [poid#1167], [linkedpoid#364], LeftAnti
:                             :                                               :- *Sort [poid#1167 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#1167, 200)
:                             :                                               :     +- SortMergeJoin [wsid#1164], [linkedwsid#363], LeftAnti
:                             :                                               :        :- *Sort [wsid#1164 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#1164, poid#1167, diff_loggedat#1169L], Exchange hashpartitioning(wsid#377, 200)
:                             :                                               :        +- *Sort [linkedwsid#363 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#363], Exchange hashpartitioning(linkedwsid#363, 200)
:                             :                                               +- *Sort [linkedpoid#364 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#364], Exchange hashpartitioning(linkedpoid#364, 200)
:                             +- *Sort [linkedpoid#1151 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#1151, 200)
:                                   +- Union
:                                      :- *Project [poid#1463 AS linkedpoid#1151]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#1463, diff_loggedat#1465L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#1463], [diff_loggedat#1465L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#1463 ASC NULLS FIRST, diff_loggedat#1465L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#1463, diff_loggedat#1465L, diff_loggedat#1465L, diff_loggedat#1465L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      +- *Project [poid#1463 AS linkedpoid#1151]
:                                         +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#1463, diff_loggedat#1465L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#1463], [diff_loggedat#1465L ASC NULLS FIRST]
:                                               +- *Sort [poid#1463 ASC NULLS FIRST, diff_loggedat#1465L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#1463, 200)
:                                                     +- *Project [poid#1463, diff_loggedat#1465L, diff_loggedat#1465L, diff_loggedat#1465L, rank_by_notification#760]
:                                                        +- Window [row_number() windowspecdefinition(wsid#1460, diff_loggedat#1465L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#760], [wsid#1460], [diff_loggedat#1465L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#1460 ASC NULLS FIRST, diff_loggedat#1465L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#1460, poid#1463, diff_loggedat#1465L], Exchange hashpartitioning(wsid#1164, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#7556, rank_by_attempt#9003, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#7556, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#7556], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#3632], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#3631], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#3631 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#3631, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#3645 AS linkedwsid#3631]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#3648, diff_loggedat#3650L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#3648], [diff_loggedat#3650L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#3648 ASC NULLS FIRST, diff_loggedat#3650L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#3645, poid#3648, diff_loggedat#3650L, diff_loggedat#3650L, diff_loggedat#3650L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 :- *Project [wsid#3645 AS linkedwsid#3631]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#3648, diff_loggedat#3650L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#3648], [diff_loggedat#3650L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#3648 ASC NULLS FIRST, diff_loggedat#3650L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#3645, poid#3648, diff_loggedat#3650L, diff_loggedat#3650L, diff_loggedat#3650L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
:                             :                 +- *Project [wsid#3645 AS linkedwsid#3631]
:                             :                    +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#3648, diff_loggedat#3650L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#3648], [diff_loggedat#3650L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#3648 ASC NULLS FIRST, diff_loggedat#3650L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#3648, 200)
:                             :                                +- *Project [wsid#3645, poid#3648, diff_loggedat#3650L, diff_loggedat#3650L, diff_loggedat#3650L, rank_by_notification#2296]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#3645, diff_loggedat#3650L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#2296], [wsid#3645], [diff_loggedat#3650L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#3645 ASC NULLS FIRST, diff_loggedat#3650L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#3645, 200)
:                             :                                            +- SortMergeJoin [poid#3648], [linkedpoid#1151], LeftAnti
:                             :                                               :- *Sort [poid#3648 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#3648, 200)
:                             :                                               :     +- SortMergeJoin [wsid#3645], [linkedwsid#1150], LeftAnti
:                             :                                               :        :- *Sort [wsid#3645 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#3645, poid#3648, diff_loggedat#3650L], Exchange hashpartitioning(wsid#1164, 200)
:                             :                                               :        +- *Sort [linkedwsid#1150 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#1150], Exchange hashpartitioning(linkedwsid#1150, 200)
:                             :                                               +- *Sort [linkedpoid#1151 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#1151], Exchange hashpartitioning(linkedpoid#1151, 200)
:                             +- *Sort [linkedpoid#3632 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#3632, 200)
:                                   +- Union
:                                      :- *Project [poid#4616 AS linkedpoid#3632]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#4616, diff_loggedat#4618L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#4616], [diff_loggedat#4618L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#4616 ASC NULLS FIRST, diff_loggedat#4618L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#4616, diff_loggedat#4618L, diff_loggedat#4618L, diff_loggedat#4618L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      :- *Project [poid#4616 AS linkedpoid#3632]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#4616, diff_loggedat#4618L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#4616], [diff_loggedat#4618L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#4616 ASC NULLS FIRST, diff_loggedat#4618L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#4616, diff_loggedat#4618L, diff_loggedat#4618L, diff_loggedat#4618L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
:                                      +- *Project [poid#4616 AS linkedpoid#3632]
:                                         +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#4616, diff_loggedat#4618L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#4616], [diff_loggedat#4618L ASC NULLS FIRST]
:                                               +- *Sort [poid#4616 ASC NULLS FIRST, diff_loggedat#4618L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#4616, 200)
:                                                     +- *Project [poid#4616, diff_loggedat#4618L, diff_loggedat#4618L, diff_loggedat#4618L, rank_by_notification#2296]
:                                                        +- Window [row_number() windowspecdefinition(wsid#4613, diff_loggedat#4618L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#2296], [wsid#4613], [diff_loggedat#4618L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#4613 ASC NULLS FIRST, diff_loggedat#4618L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#4613, poid#4616, diff_loggedat#4618L], Exchange hashpartitioning(wsid#3645, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#26690, rank_by_attempt#32057, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#26690, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#26690], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#12427], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#12426], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#12426 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#12426, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#12440 AS linkedwsid#12426]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#12443, diff_loggedat#12445L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#12443], [diff_loggedat#12445L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#12443 ASC NULLS FIRST, diff_loggedat#12445L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#12440, poid#12443, diff_loggedat#12445L, diff_loggedat#12445L, diff_loggedat#12445L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 :- *Project [wsid#12440 AS linkedwsid#12426]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#12443, diff_loggedat#12445L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#12443], [diff_loggedat#12445L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#12443 ASC NULLS FIRST, diff_loggedat#12445L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#12440, poid#12443, diff_loggedat#12445L, diff_loggedat#12445L, diff_loggedat#12445L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
:                             :                 :- *Project [wsid#12440 AS linkedwsid#12426]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#12443, diff_loggedat#12445L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#12443], [diff_loggedat#12445L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#12443 ASC NULLS FIRST, diff_loggedat#12445L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#12440, poid#12443, diff_loggedat#12445L, diff_loggedat#12445L, diff_loggedat#12445L, rank_by_notification#2296], Exchange hashpartitioning(poid#3648, 200)
:                             :                 +- *Project [wsid#12440 AS linkedwsid#12426]
:                             :                    +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#12443, diff_loggedat#12445L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#12443], [diff_loggedat#12445L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#12443 ASC NULLS FIRST, diff_loggedat#12445L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#12443, 200)
:                             :                                +- *Project [wsid#12440, poid#12443, diff_loggedat#12445L, diff_loggedat#12445L, diff_loggedat#12445L, rank_by_notification#7556]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#12440, diff_loggedat#12445L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#7556], [wsid#12440], [diff_loggedat#12445L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#12440 ASC NULLS FIRST, diff_loggedat#12445L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#12440, 200)
:                             :                                            +- SortMergeJoin [poid#12443], [linkedpoid#3632], LeftAnti
:                             :                                               :- *Sort [poid#12443 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#12443, 200)
:                             :                                               :     +- SortMergeJoin [wsid#12440], [linkedwsid#3631], LeftAnti
:                             :                                               :        :- *Sort [wsid#12440 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#12440, poid#12443, diff_loggedat#12445L], Exchange hashpartitioning(wsid#3645, 200)
:                             :                                               :        +- *Sort [linkedwsid#3631 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#3631], Exchange hashpartitioning(linkedwsid#3631, 200)
:                             :                                               +- *Sort [linkedpoid#3632 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#3632], Exchange hashpartitioning(linkedpoid#3632, 200)
:                             +- *Sort [linkedpoid#12427 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#12427, 200)
:                                   +- Union
:                                      :- *Project [poid#15903 AS linkedpoid#12427]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#15903, diff_loggedat#15905L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#15903], [diff_loggedat#15905L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#15903 ASC NULLS FIRST, diff_loggedat#15905L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#15903, diff_loggedat#15905L, diff_loggedat#15905L, diff_loggedat#15905L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      :- *Project [poid#15903 AS linkedpoid#12427]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#15903, diff_loggedat#15905L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#15903], [diff_loggedat#15905L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#15903 ASC NULLS FIRST, diff_loggedat#15905L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#15903, diff_loggedat#15905L, diff_loggedat#15905L, diff_loggedat#15905L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
:                                      :- *Project [poid#15903 AS linkedpoid#12427]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#15903, diff_loggedat#15905L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#15903], [diff_loggedat#15905L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#15903 ASC NULLS FIRST, diff_loggedat#15905L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#15903, diff_loggedat#15905L, diff_loggedat#15905L, diff_loggedat#15905L, rank_by_notification#2296], Exchange hashpartitioning(poid#4616, 200)
:                                      +- *Project [poid#15903 AS linkedpoid#12427]
:                                         +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#15903, diff_loggedat#15905L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#15903], [diff_loggedat#15905L ASC NULLS FIRST]
:                                               +- *Sort [poid#15903 ASC NULLS FIRST, diff_loggedat#15905L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#15903, 200)
:                                                     +- *Project [poid#15903, diff_loggedat#15905L, diff_loggedat#15905L, diff_loggedat#15905L, rank_by_notification#7556]
:                                                        +- Window [row_number() windowspecdefinition(wsid#15900, diff_loggedat#15905L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#7556], [wsid#15900], [diff_loggedat#15905L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#15900 ASC NULLS FIRST, diff_loggedat#15905L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#15900, poid#15903, diff_loggedat#15905L], Exchange hashpartitioning(wsid#12440, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#97568, rank_by_attempt#117565, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#97568, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#97568], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#44756], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#44755], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#44755 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#44755, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#44769 AS linkedwsid#44755]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#44772, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#44772], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#44772 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#44769, poid#44772, diff_loggedat#44774L, diff_loggedat#44774L, diff_loggedat#44774L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 :- *Project [wsid#44769 AS linkedwsid#44755]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#44772, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#44772], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#44772 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#44769, poid#44772, diff_loggedat#44774L, diff_loggedat#44774L, diff_loggedat#44774L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
:                             :                 :- *Project [wsid#44769 AS linkedwsid#44755]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#44772, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#44772], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#44772 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#44769, poid#44772, diff_loggedat#44774L, diff_loggedat#44774L, diff_loggedat#44774L, rank_by_notification#2296], Exchange hashpartitioning(poid#3648, 200)
:                             :                 :- *Project [wsid#44769 AS linkedwsid#44755]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#44772, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#44772], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#44772 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#44769, poid#44772, diff_loggedat#44774L, diff_loggedat#44774L, diff_loggedat#44774L, rank_by_notification#7556], Exchange hashpartitioning(poid#12443, 200)
:                             :                 +- *Project [wsid#44769 AS linkedwsid#44755]
:                             :                    +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#44772, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#44772], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#44772 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#44772, 200)
:                             :                                +- *Project [wsid#44769, poid#44772, diff_loggedat#44774L, diff_loggedat#44774L, diff_loggedat#44774L, rank_by_notification#26690]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#44769, diff_loggedat#44774L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#26690], [wsid#44769], [diff_loggedat#44774L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#44769 ASC NULLS FIRST, diff_loggedat#44774L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#44769, 200)
:                             :                                            +- SortMergeJoin [poid#44772], [linkedpoid#12427], LeftAnti
:                             :                                               :- *Sort [poid#44772 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#44772, 200)
:                             :                                               :     +- SortMergeJoin [wsid#44769], [linkedwsid#12426], LeftAnti
:                             :                                               :        :- *Sort [wsid#44769 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#44769, poid#44772, diff_loggedat#44774L], Exchange hashpartitioning(wsid#12440, 200)
:                             :                                               :        +- *Sort [linkedwsid#12426 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#12426], Exchange hashpartitioning(linkedwsid#12426, 200)
:                             :                                               +- *Sort [linkedpoid#12427 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#12427], Exchange hashpartitioning(linkedpoid#12427, 200)
:                             +- *Sort [linkedpoid#44756 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#44756, 200)
:                                   +- Union
:                                      :- *Project [poid#57514 AS linkedpoid#44756]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#57514, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#57514], [diff_loggedat#57516L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#57514 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#57514, diff_loggedat#57516L, diff_loggedat#57516L, diff_loggedat#57516L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      :- *Project [poid#57514 AS linkedpoid#44756]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#57514, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#57514], [diff_loggedat#57516L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#57514 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#57514, diff_loggedat#57516L, diff_loggedat#57516L, diff_loggedat#57516L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
:                                      :- *Project [poid#57514 AS linkedpoid#44756]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#57514, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#57514], [diff_loggedat#57516L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#57514 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#57514, diff_loggedat#57516L, diff_loggedat#57516L, diff_loggedat#57516L, rank_by_notification#2296], Exchange hashpartitioning(poid#4616, 200)
:                                      :- *Project [poid#57514 AS linkedpoid#44756]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#57514, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#57514], [diff_loggedat#57516L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#57514 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#57514, diff_loggedat#57516L, diff_loggedat#57516L, diff_loggedat#57516L, rank_by_notification#7556], Exchange hashpartitioning(poid#15903, 200)
:                                      +- *Project [poid#57514 AS linkedpoid#44756]
:                                         +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#57514, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#57514], [diff_loggedat#57516L ASC NULLS FIRST]
:                                               +- *Sort [poid#57514 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#57514, 200)
:                                                     +- *Project [poid#57514, diff_loggedat#57516L, diff_loggedat#57516L, diff_loggedat#57516L, rank_by_notification#26690]
:                                                        +- Window [row_number() windowspecdefinition(wsid#57511, diff_loggedat#57516L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#26690], [wsid#57511], [diff_loggedat#57516L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#57511 ASC NULLS FIRST, diff_loggedat#57516L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#57511, poid#57514, diff_loggedat#57516L], Exchange hashpartitioning(wsid#44769, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#361520, rank_by_attempt#436117, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_attempt#436117) && isnotnull(rank_by_notification#361520)) && (rank_by_notification#361520 = 1)) && (rank_by_attempt#436117 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#436117], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#361520, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#361520], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#164879], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#164878], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#164878 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#164878, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 :- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
:                             :                 :- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#2296], Exchange hashpartitioning(poid#3648, 200)
:                             :                 :- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#7556], Exchange hashpartitioning(poid#12443, 200)
:                             :                 :- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#26690], Exchange hashpartitioning(poid#44772, 200)
:                             :                 +- *Project [wsid#164892 AS linkedwsid#164878]
:                             :                    +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#164895, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#164895], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#164895 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#164895, 200)
:                             :                                +- *Project [wsid#164892, poid#164895, diff_loggedat#164897L, diff_loggedat#164897L, diff_loggedat#164897L, rank_by_notification#97568]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#164892, diff_loggedat#164897L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#97568], [wsid#164892], [diff_loggedat#164897L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#164892 ASC NULLS FIRST, diff_loggedat#164897L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#164892, 200)
:                             :                                            +- SortMergeJoin [poid#164895], [linkedpoid#44756], LeftAnti
:                             :                                               :- *Sort [poid#164895 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#164895, 200)
:                             :                                               :     +- SortMergeJoin [wsid#164892], [linkedwsid#44755], LeftAnti
:                             :                                               :        :- *Sort [wsid#164892 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#164892, poid#164895, diff_loggedat#164897L], Exchange hashpartitioning(wsid#44769, 200)
:                             :                                               :        +- *Sort [linkedwsid#44755 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#44755], Exchange hashpartitioning(linkedwsid#44755, 200)
:                             :                                               +- *Sort [linkedpoid#44756 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#44756], Exchange hashpartitioning(linkedpoid#44756, 200)
:                             +- *Sort [linkedpoid#164879 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#164879, 200)
:                                   +- Union
:                                      :- *Project [poid#212259 AS linkedpoid#164879]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      :- *Project [poid#212259 AS linkedpoid#164879]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
:                                      :- *Project [poid#212259 AS linkedpoid#164879]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#2296], Exchange hashpartitioning(poid#4616, 200)
:                                      :- *Project [poid#212259 AS linkedpoid#164879]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#7556], Exchange hashpartitioning(poid#15903, 200)
:                                      :- *Project [poid#212259 AS linkedpoid#164879]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#26690], Exchange hashpartitioning(poid#57514, 200)
:                                      +- *Project [poid#212259 AS linkedpoid#164879]
:                                         +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#212259, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#212259], [diff_loggedat#212261L ASC NULLS FIRST]
:                                               +- *Sort [poid#212259 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#212259, 200)
:                                                     +- *Project [poid#212259, diff_loggedat#212261L, diff_loggedat#212261L, diff_loggedat#212261L, rank_by_notification#97568]
:                                                        +- Window [row_number() windowspecdefinition(wsid#212256, diff_loggedat#212261L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#97568], [wsid#212256], [diff_loggedat#212261L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#212256 ASC NULLS FIRST, diff_loggedat#212261L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#212256, poid#212259, diff_loggedat#212261L], Exchange hashpartitioning(wsid#164892, 200)
:- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#1345996, rank_by_attempt#1624363, wscreatedat#170]
:  +- *Filter (((isnotnull(rank_by_attempt#1624363) && isnotnull(rank_by_notification#1345996)) && (rank_by_notification#1345996 = 1)) && (rank_by_attempt#1624363 = 1))
:     +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#1624363], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
:        +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:           +- Exchange hashpartitioning(poid#167, 200)
:              +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#1345996, wscreatedat#170]
:                 +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#1345996], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
:                    +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
:                       +- Exchange hashpartitioning(wsid#164, 200)
:                          +- SortMergeJoin [poid#167], [linkedpoid#612616], LeftAnti
:                             :- *Sort [poid#167 ASC NULLS FIRST], false, 0
:                             :  +- Exchange hashpartitioning(poid#167, 200)
:                             :     +- SortMergeJoin [wsid#164], [linkedwsid#612615], LeftAnti
:                             :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
:                             :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
:                             :        +- *Sort [linkedwsid#612615 ASC NULLS FIRST], false, 0
:                             :           +- Exchange hashpartitioning(linkedwsid#612615, 200)
:                             :              +- Union
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#2296], Exchange hashpartitioning(poid#3648, 200)
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#7556], Exchange hashpartitioning(poid#12443, 200)
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#26690], Exchange hashpartitioning(poid#44772, 200)
:                             :                 :- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                 :  +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
:                             :                 :     +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                 :        +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                 :           +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#97568], Exchange hashpartitioning(poid#164895, 200)
:                             :                 +- *Project [wsid#612629 AS linkedwsid#612615]
:                             :                    +- *Filter (((isnotnull(rank_by_attempt#436117) && isnotnull(rank_by_notification#361520)) && (rank_by_notification#361520 = 1)) && (rank_by_attempt#436117 = 1))
:                             :                       +- Window [row_number() windowspecdefinition(poid#612632, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#436117], [poid#612632], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                          +- *Sort [poid#612632 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                             +- Exchange hashpartitioning(poid#612632, 200)
:                             :                                +- *Project [wsid#612629, poid#612632, diff_loggedat#612634L, diff_loggedat#612634L, diff_loggedat#612634L, rank_by_notification#361520]
:                             :                                   +- Window [row_number() windowspecdefinition(wsid#612629, diff_loggedat#612634L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#361520], [wsid#612629], [diff_loggedat#612634L ASC NULLS FIRST]
:                             :                                      +- *Sort [wsid#612629 ASC NULLS FIRST, diff_loggedat#612634L ASC NULLS FIRST], false, 0
:                             :                                         +- Exchange hashpartitioning(wsid#612629, 200)
:                             :                                            +- SortMergeJoin [poid#612632], [linkedpoid#164879], LeftAnti
:                             :                                               :- *Sort [poid#612632 ASC NULLS FIRST], false, 0
:                             :                                               :  +- Exchange hashpartitioning(poid#612632, 200)
:                             :                                               :     +- SortMergeJoin [wsid#612629], [linkedwsid#164878], LeftAnti
:                             :                                               :        :- *Sort [wsid#612629 ASC NULLS FIRST], false, 0
:                             :                                               :        :  +- ReusedExchange [wsid#612629, poid#612632, diff_loggedat#612634L], Exchange hashpartitioning(wsid#164892, 200)
:                             :                                               :        +- *Sort [linkedwsid#164878 ASC NULLS FIRST], false, 0
:                             :                                               :           +- ReusedExchange [linkedwsid#164878], Exchange hashpartitioning(linkedwsid#164878, 200)
:                             :                                               +- *Sort [linkedpoid#164879 ASC NULLS FIRST], false, 0
:                             :                                                  +- ReusedExchange [linkedpoid#164879], Exchange hashpartitioning(linkedpoid#164879, 200)
:                             +- *Sort [linkedpoid#612616 ASC NULLS FIRST], false, 0
:                                +- Exchange hashpartitioning(linkedpoid#612616, 200)
:                                   +- Union
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#2296], Exchange hashpartitioning(poid#4616, 200)
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#7556], Exchange hashpartitioning(poid#15903, 200)
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#26690], Exchange hashpartitioning(poid#57514, 200)
:                                      :- *Project [poid#789188 AS linkedpoid#612616]
:                                      :  +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
:                                      :     +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                      :        +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                      :           +- ReusedExchange [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#97568], Exchange hashpartitioning(poid#212259, 200)
:                                      +- *Project [poid#789188 AS linkedpoid#612616]
:                                         +- *Filter (((isnotnull(rank_by_attempt#436117) && isnotnull(rank_by_notification#361520)) && (rank_by_notification#361520 = 1)) && (rank_by_attempt#436117 = 1))
:                                            +- Window [row_number() windowspecdefinition(poid#789188, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#436117], [poid#789188], [diff_loggedat#789190L ASC NULLS FIRST]
:                                               +- *Sort [poid#789188 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                                  +- Exchange hashpartitioning(poid#789188, 200)
:                                                     +- *Project [poid#789188, diff_loggedat#789190L, diff_loggedat#789190L, diff_loggedat#789190L, rank_by_notification#361520]
:                                                        +- Window [row_number() windowspecdefinition(wsid#789185, diff_loggedat#789190L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#361520], [wsid#789185], [diff_loggedat#789190L ASC NULLS FIRST]
:                                                           +- *Sort [wsid#789185 ASC NULLS FIRST, diff_loggedat#789190L ASC NULLS FIRST], false, 0
:                                                              +- ReusedExchange [wsid#789185, poid#789188, diff_loggedat#789190L], Exchange hashpartitioning(wsid#612629, 200)
+- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#5019466, rank_by_attempt#6058313, wscreatedat#170]
   +- *Filter (((isnotnull(rank_by_notification#5019466) && isnotnull(rank_by_attempt#6058313)) && (rank_by_notification#5019466 = 1)) && (rank_by_attempt#6058313 = 1))
      +- Window [row_number() windowspecdefinition(poid#167, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#6058313], [poid#167], [diff_loggedat#169L ASC NULLS FIRST]
         +- *Sort [poid#167 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
            +- Exchange hashpartitioning(poid#167, 200)
               +- *Project [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, diff_loggedat#169L, diff_loggedat#169L, rank_by_notification#5019466, wscreatedat#170]
                  +- Window [row_number() windowspecdefinition(wsid#164, diff_loggedat#169L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#5019466], [wsid#164], [diff_loggedat#169L ASC NULLS FIRST]
                     +- *Sort [wsid#164 ASC NULLS FIRST, diff_loggedat#169L ASC NULLS FIRST], false, 0
                        +- Exchange hashpartitioning(wsid#164, 200)
                           +- SortMergeJoin [poid#167], [linkedpoid#2282987], LeftAnti
                              :- *Sort [poid#167 ASC NULLS FIRST], false, 0
                              :  +- Exchange hashpartitioning(poid#167, 200)
                              :     +- SortMergeJoin [wsid#164], [linkedwsid#2282986], LeftAnti
                              :        :- *Sort [wsid#164 ASC NULLS FIRST], false, 0
                              :        :  +- ReusedExchange [wsid#164, wsloggedat#165, tokenid#32, poid#167, pologgedat#168, diff_loggedat#169L, wscreatedat#170], Exchange hashpartitioning(wsid#164, 200)
                              :        +- *Sort [linkedwsid#2282986 ASC NULLS FIRST], false, 0
                              :           +- Exchange hashpartitioning(linkedwsid#2282986, 200)
                              :              +- Union
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#230], Exchange hashpartitioning(poid#380, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#760], Exchange hashpartitioning(poid#1167, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#2296], Exchange hashpartitioning(poid#3648, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#7556], Exchange hashpartitioning(poid#12443, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#26690], Exchange hashpartitioning(poid#44772, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#97568], Exchange hashpartitioning(poid#164895, 200)
                              :                 :- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                 :  +- *Filter (((isnotnull(rank_by_attempt#436117) && isnotnull(rank_by_notification#361520)) && (rank_by_notification#361520 = 1)) && (rank_by_attempt#436117 = 1))
                              :                 :     +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#436117], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                 :        +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                 :           +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#361520], Exchange hashpartitioning(poid#612632, 200)
                              :                 +- *Project [wsid#2283000 AS linkedwsid#2282986]
                              :                    +- *Filter (((isnotnull(rank_by_attempt#1624363) && isnotnull(rank_by_notification#1345996)) && (rank_by_notification#1345996 = 1)) && (rank_by_attempt#1624363 = 1))
                              :                       +- Window [row_number() windowspecdefinition(poid#2283003, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#1624363], [poid#2283003], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                          +- *Sort [poid#2283003 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                             +- Exchange hashpartitioning(poid#2283003, 200)
                              :                                +- *Project [wsid#2283000, poid#2283003, diff_loggedat#2283005L, diff_loggedat#2283005L, diff_loggedat#2283005L, rank_by_notification#1345996]
                              :                                   +- Window [row_number() windowspecdefinition(wsid#2283000, diff_loggedat#2283005L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#1345996], [wsid#2283000], [diff_loggedat#2283005L ASC NULLS FIRST]
                              :                                      +- *Sort [wsid#2283000 ASC NULLS FIRST, diff_loggedat#2283005L ASC NULLS FIRST], false, 0
                              :                                         +- Exchange hashpartitioning(wsid#2283000, 200)
                              :                                            +- SortMergeJoin [poid#2283003], [linkedpoid#612616], LeftAnti
                              :                                               :- *Sort [poid#2283003 ASC NULLS FIRST], false, 0
                              :                                               :  +- Exchange hashpartitioning(poid#2283003, 200)
                              :                                               :     +- SortMergeJoin [wsid#2283000], [linkedwsid#612615], LeftAnti
                              :                                               :        :- *Sort [wsid#2283000 ASC NULLS FIRST], false, 0
                              :                                               :        :  +- ReusedExchange [wsid#2283000, poid#2283003, diff_loggedat#2283005L], Exchange hashpartitioning(wsid#612629, 200)
                              :                                               :        +- *Sort [linkedwsid#612615 ASC NULLS FIRST], false, 0
                              :                                               :           +- ReusedExchange [linkedwsid#612615], Exchange hashpartitioning(linkedwsid#612615, 200)
                              :                                               +- *Sort [linkedpoid#612616 ASC NULLS FIRST], false, 0
                              :                                                  +- ReusedExchange [linkedpoid#612616], Exchange hashpartitioning(linkedpoid#612616, 200)
                              +- *Sort [linkedpoid#2282987 ASC NULLS FIRST], false, 0
                                 +- Exchange hashpartitioning(linkedpoid#2282987, 200)
                                    +- Union
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_attempt#277) && isnotnull(rank_by_notification#230)) && (rank_by_notification#230 = 1)) && (rank_by_attempt#277 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#277], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#230], Exchange hashpartitioning(poid#494, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_attempt#877) && isnotnull(rank_by_notification#760)) && (rank_by_notification#760 = 1)) && (rank_by_attempt#877 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#877], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#760], Exchange hashpartitioning(poid#1463, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_notification#2296) && isnotnull(rank_by_attempt#2693)) && (rank_by_notification#2296 = 1)) && (rank_by_attempt#2693 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#2693], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#2296], Exchange hashpartitioning(poid#4616, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_attempt#9003) && isnotnull(rank_by_notification#7556)) && (rank_by_notification#7556 = 1)) && (rank_by_attempt#9003 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#9003], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#7556], Exchange hashpartitioning(poid#15903, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_notification#26690) && isnotnull(rank_by_attempt#32057)) && (rank_by_notification#26690 = 1)) && (rank_by_attempt#32057 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#32057], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#26690], Exchange hashpartitioning(poid#57514, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_notification#97568) && isnotnull(rank_by_attempt#117565)) && (rank_by_notification#97568 = 1)) && (rank_by_attempt#117565 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#117565], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#97568], Exchange hashpartitioning(poid#212259, 200)
                                       :- *Project [poid#2941691 AS linkedpoid#2282987]
                                       :  +- *Filter (((isnotnull(rank_by_attempt#436117) && isnotnull(rank_by_notification#361520)) && (rank_by_notification#361520 = 1)) && (rank_by_attempt#436117 = 1))
                                       :     +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#436117], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                       :        +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                       :           +- ReusedExchange [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#361520], Exchange hashpartitioning(poid#789188, 200)
                                       +- *Project [poid#2941691 AS linkedpoid#2282987]
                                          +- *Filter (((isnotnull(rank_by_attempt#1624363) && isnotnull(rank_by_notification#1345996)) && (rank_by_notification#1345996 = 1)) && (rank_by_attempt#1624363 = 1))
                                             +- Window [row_number() windowspecdefinition(poid#2941691, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_attempt#1624363], [poid#2941691], [diff_loggedat#2941693L ASC NULLS FIRST]
                                                +- *Sort [poid#2941691 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                                   +- Exchange hashpartitioning(poid#2941691, 200)
                                                      +- *Project [poid#2941691, diff_loggedat#2941693L, diff_loggedat#2941693L, diff_loggedat#2941693L, rank_by_notification#1345996]
                                                         +- Window [row_number() windowspecdefinition(wsid#2941688, diff_loggedat#2941693L ASC NULLS FIRST, ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rank_by_notification#1345996], [wsid#2941688], [diff_loggedat#2941693L ASC NULLS FIRST]
                                                            +- *Sort [wsid#2941688 ASC NULLS FIRST, diff_loggedat#2941693L ASC NULLS FIRST], false, 0
                                                               +- ReusedExchange [wsid#2941688, poid#2941691, diff_loggedat#2941693L], Exchange hashpartitioning(wsid#2283000, 200)

Thanks,
Nimmi

On Tue, Sep 12, 2017 at 4:15 AM, Naga G <[hidden email]> wrote:
Are you running on hivecontext on sqlcontext ?

Sent from Naga iPad

On Sep 12, 2017, at 2:43 AM, Nimmi Cv <[hidden email]> wrote:

Exception in thread "main" java.lang.OutOfMemoryError at 
java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:161) 
at 
java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:155) 
at 
java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) 
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) at 
java.lang.StringBuilder.append(StringBuilder.java:136) at 
java.lang.StringBuilder.append(StringBuilder.java:131) at 
scala.StringContext.standardInterpolator(StringContext.scala:125) at 
scala.StringContext.s(StringContext.scala:95) at 
org.apache.spark.sql.execution.QueryExecution.toString(QueryExecution.scala:230) 
at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:54) 
at org.apache.spark.sql.Dataset.withNewExecutionId(Dataset.scala:2788) at 
org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$execute$1(Dataset.scala:2385) 
at 
org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collect(Dataset.scala:2392) 
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2420) 
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2419) 
at org.apache.spark.sql.Dataset.withCallback(Dataset.scala:2801) at 
org.apache.spark.sql.Dataset.count(Dataset.scala:2419) at 
com.samsung.cloud.mopay.linking.controller.PostNotificLinkController.linkPostNotific(PostNotificLinkController.java:51) 
at 
com.samsung.cloud.mopay.linking.txn.TxnLinking.performTxnLinking(TxnLinking.java:26) 
at com.samsung.cloud.mopay.linking.Linking.processData(Linking.java:199) at 
com.samsung.cloud.mopay.linking.Linking.main(Linking.java:72) at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) at 
org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:743) 
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) 
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at 
org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at 
org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 


I tried increasing 
spark.driver.memory = 50g 
spark.yarn.driver.memoryOverhead = 80g 

Any help appreciated. I am stuck here for a while. 

Thanks,
Nimmi