加载两次以运行spark窗口ok

时间:2017-01-19 16:04:41

标签: apache-spark pyspark

我正在使用spark 1.5.1,我不知道这是一个错误还是一个功能......

我正在尝试使用窗口对数据帧列求和。正常的代码应该是:

from pyspark.sql.window import Window
from pyspark.sql import functions as F

df = sqlContext.read.parquet('/tmp/my_file.parquet')

w = Window().partitionBy('id').orderBy('timestamp').rowsBetween(0, 5)
df.select(F.sum(df.v1).over(w)).show()

结果:

enter image description here

结果是错误的(我说这是垃圾)。但是,如果我'加载'两次......

from pyspark.sql.window import Window
from pyspark.sql import functions as F

df = sqlContext.read.parquet('/tmp/my_file.parquet')
df = sqlContext.read.parquet('/tmp/my_file.parquet') # NEW LOAD

w = Window().partitionBy('id').orderBy('timestamp').rowsBetween(0, 5)
df.select(F.sum(df.v1).over(w)).show()

新结果是正确的:

  

Blockquote

发生了什么事?

1 个答案:

答案 0 :(得分:0)

似乎这是Spark 1.5.1的已解决错误。 This是该bug的jira跟踪器。