+
+ if not read_collapse:
+ df = df.withColumn('editor_nth_edit', f.rank().over(ed_win))
+ df = df.withColumn('article_nth_edit', f.rank().over(art_win))
+ else:
+ df = df.withColumn('editor_nth_edit', f.sum("collapsed_revs").over(ed_win))
+ df = df.withColumn('article_nth_edit', f.sum("collapsed_revs").over(art_win))
+ df = df.withColumn('editor_nth_collapsed_edit', f.rank().over(ed_win))
+ df = df.withColumn('article_nth_collapsed_edit', f.rank().over(art_win))
+
+ # total editor's token_revs
+ if read_persistence:
+ df = df.withColumn("token_revs_upper", df.token_revs + df.tokens_added * (PERSISTENCE_RADIUS - df.tokens_window - 1))
+ df = df.withColumn('editor_cum_token_revs_lower', f.sum("token_revs").over(ed_win))
+ df = df.withColumn('editor_cum_token_revs_upper', f.sum("token_revs_upper").over(ed_win))
+ df = df.withColumn('article_cum_token_revs_lower', f.sum("token_revs").over(art_win))
+ df = df.withColumn('article_cum_token_revs_upper', f.sum("token_revs_upper").over(art_win))
+ df = df.withColumn('editor_cum_tokens_added', f.sum("tokens_added").over(ed_win))
+ df = df.withColumn('article_cum_tokens_removed', f.sum("tokens_removed").over(art_win))