Python 如何使用pyspark计算连续值?
我试图计算Pyspark列中出现的连续值。我的数据框中有列“a”,希望创建列“b” 我曾尝试在某个窗口上创建带有滞后函数的列“b”,但没有成功Python 如何使用pyspark计算连续值?,python,pyspark,Python,Pyspark,我试图计算Pyspark列中出现的连续值。我的数据框中有列“a”,希望创建列“b” 我曾尝试在某个窗口上创建带有滞后函数的列“b”,但没有成功 w = Window\ .partitionBy(df.some_id)\ .orderBy(df.timestamp_column) df.withColumn( "b", f.when(df.a == f.lag(df.a).over(w), f.sum(f.lit(1)).over(w)).otherwise(f
w = Window\
.partitionBy(df.some_id)\
.orderBy(df.timestamp_column)
df.withColumn(
"b",
f.when(df.a == f.lag(df.a).over(w),
f.sum(f.lit(1)).over(w)).otherwise(f.lit(0))
)
我可以使用以下代码解决此问题:
df.withColumn("b",
f.row_number().over(Window.partitionBy("a").orderBy("timestamp_column"))
df.with column(“b”,F.row_number()。over(Window.partitionBy(“a”)。orderBy(“a”))。show()
?例如,0是否可以稍后重复?列“a”已排序。窗口按发生的日期和时间排序@anky实际上你的代码帮助我达到了预期的效果!!!我很快就会把问题的答案贴出来。非常感谢。
df.withColumn("b",
f.row_number().over(Window.partitionBy("a").orderBy("timestamp_column"))