Dataframe pyspark中的滞后功能无法正常工作

Dataframe pyspark中的滞后功能无法正常工作,dataframe,apache-spark,pyspark,window,Dataframe,Apache Spark,Pyspark,Window,df是没有任何唯一标识符的数据帧。 我必须对列使用滞后函数来计算它以前的值 代码如下所示 from pyspark.sql import Window import pyspark.sql.functions as func df = df1.withColumn('id', monotonically_increasing_id()) df.select('id').show() window = Window.orderBy("id") df = df1.withColumn('price

df是没有任何唯一标识符的数据帧。 我必须对列使用滞后函数来计算它以前的值 代码如下所示

from pyspark.sql import Window
 import pyspark.sql.functions as func
df = df1.withColumn('id', monotonically_increasing_id())
df.select('id').show()
window = Window.orderBy("id")
df = df1.withColumn('price_close',(func.lag(col("price_open"), 1).over(window)))\
我收到一个错误,说明“AnalysisException:”无法解析“
id
” df.select('id').show()-->输出

         0|
| 8589934592|
| 8589934593|
|17179869184|
|17179869185|
|25769803776|
|25769803777|
|34359738368

代码

Id列的错误在df而不是df1中

将最后一行替换为,因为您的窗口包含对id的引用

df = df.withColumn('price_close',(func.lag(col("price_open"), 1).over(window)))

Id列位于df而不是df1中

将最后一行替换为,因为您的窗口包含对id的引用

df = df.withColumn('price_close',(func.lag(col("price_open"), 1).over(window)))