Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SparkR窗口函数_R_Apache Spark_Apache Spark Sql_Window Functions_Sparkr - Fatal编程技术网

SparkR窗口函数

SparkR窗口函数,r,apache-spark,apache-spark-sql,window-functions,sparkr,R,Apache Spark,Apache Spark Sql,Window Functions,Sparkr,我发现1.6版本的SparkR已经实现了窗口功能,包括lag和rank,但是over功能还没有实现。如何在SparkR中使用像lag函数这样的窗口函数而不使用over(而不是SparkSQL方式)?有人能举个例子吗?Spark 2.0.0+ SparkR为DSL包装器提供了over,窗口.partitionBy/分区by,窗口.orderBy/orderBy和行之间的/范围函数 火花火花2.0.0+ SparkR为DSL包装器提供了over,窗口.partitionBy/分区by,窗口.orde

我发现1.6版本的
SparkR
已经实现了窗口功能,包括
lag
rank
,但是
over
功能还没有实现。如何在
SparkR
中使用像
lag
函数这样的窗口函数而不使用
over
(而不是
SparkSQL
方式)?有人能举个例子吗?

Spark 2.0.0+

SparkR为DSL包装器提供了
over
窗口.partitionBy
/
分区by
窗口.orderBy
/
orderBy
行之间的
/
范围
函数


火花火花2.0.0+

SparkR为DSL包装器提供了
over
窗口.partitionBy
/
分区by
窗口.orderBy
/
orderBy
行之间的
/
范围
函数

火花
set.seed(1)

hc <- sparkRHive.init(sc)
sdf <- createDataFrame(hc, data.frame(x=1:12, y=1:3, z=rnorm(12)))
registerTempTable(sdf, "sdf")

sql(hc, "SELECT x, y, z, LAG(z) OVER (PARTITION BY y ORDER BY x) FROM sdf") %>% 
  head()

##    x y          z        _c3
## 1  1 1 -0.6264538         NA
## 2  4 1  1.5952808 -0.6264538
## 3  7 1  0.4874291  1.5952808
## 4 10 1 -0.3053884  0.4874291
## 5  2 2  0.1836433         NA
## 6  5 2  0.3295078  0.1836433
w <- Window.partitionBy("y") %>% orderBy("x")
select(sdf, over(lag(sdf$z), w))