0
Spark에서 R을 사용하여 대형 timeseries 데이터 세트에서 이동 평균을 수행해야합니다. Moving Average in Spark Java, Apache Spark Moving Average 아무것도하지만 에서 R : 내가 볼SparkR에서의 이동 평균
스칼라와 자바에서이 구현이 있습니다.
Spark에서 R을 사용하여 대형 timeseries 데이터 세트에서 이동 평균을 수행해야합니다. Moving Average in Spark Java, Apache Spark Moving Average 아무것도하지만 에서 R : 내가 볼SparkR에서의 이동 평균
스칼라와 자바에서이 구현이 있습니다.
나는 이것을 SparkR 창 함수를 사용하여 해결할 수있었습니다. 나는 Spark 2.0 btw를 사용하고있다.
set.seed(123)
#generate poisson distribution for easy checking, with lambda = 15
n <- 1000
orderingColumn = seq(1,n)
data = rpois(n, 15)
df <- data.frame(orderingColumn, data)
#Create sparkdf
sdf <- as.DataFrame(df);
#Moving average
ws <- windowOrderBy(sdf$orderingColumn)
frame <- rowsBetween(ws, -100, 0) #100 observations back included in average
sdfWithMa <- withColumn(sdf, "moving_average", over(avg(sdf$data), frame))
head(sdfWithMa, 100)
한 가지 이상 그 불꽃은 불행하게도, 그것은 대용량 데이터 세트를 통해 느릴 수 있도록 단일 파티션에 모든 데이터를로드하려고 시도합니다입니다 함께 알고 있어야합니다. 데이터가 분산되어있는 시스템에서는 정렬 된 데이터에서 슬라이딩 윈도우를 계산하는 것이 어렵다는 것을 알고 있지만 기본 구현이 다르다면 좋겠습니다.
당신이 당신의 이동 평균은 당신이 당신의 창을 변경할 수있는 데이터의 파티션에서 실행할 수있을만큼 운이 좋은 경우 :
ws <- orderBy(windowPartitionBy("my_partition_column"), sdf$orderingColumn)
을