apachesparkDataframec中的移动平均#

0yg35tkg  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(244)

在我的数据库中有一些我已经导入apachesparkDataframe的示例。我需要在c#中的当前样本之前添加另一个移动平均数为n个样本的列。
这是我的Dataframe:

DataFrame frame = jdbcDf
            .Where("SubjectKey = 104")
            .Select("Timestamp", "Current").Sort("Timestamp");

我发现这个代码:

val movAvg = sampleData.withColumn("movingAverage", AVG(sampleData("Current"))
             .over( Window.partitionBy("Role").rowsBetween(-1,1)) )

但是在我的代码中使用window类。如何计算移动平均数?执行此操作时如何处理空值?

huus2vyu

huus2vyu1#

我必须设法找到正确的语法:

DataFrame frame = jdbcDf
            .Where("SubjectKey = 104")
            .Select("Timestamp", "Current");
var windowSp = Microsoft.Spark.Sql.Expressions.Window.RowsBetween(-10, -1);
var movAvg = result.Sort("Timestamp").WithColumn("movingAverage", 
Avg(result["Diff"]).Over(windowSp));

相关问题