GCP DataPrep- 移动 window

GCP DataPrep- moving window

我有一个以下格式的 CSV 文件,我正在尝试使用 GCP dataprep 进行处理。

   Timestamp                 Tag           Value
   2018-05-01 09:00:00     Temperature     40.1
   2018-05-01 09:00:00     Humidity        80
   2018-05-01 09:05:00     Temperature     40.2
   2018-05-01 09:05:00     Humidity        80
   2018-05-01 09:10:00     Temperature     40.0
   2018-05-01 09:10:00     Humidity        82

数据以 5 分钟为间隔延长 2 周。 我想对其进行转换,以便每隔 10 分钟显示前 10 分钟的平均值(或 min/max/median)并对其进行旋转,这样我得到的最终结果如下:

  Timestamp             Temperature    Humidity
 2018-05-01 09:10:00      40.1         80.06

所以基本上,09:10 处的值是 09:00、09:05 和 09:10 处的值的平均值。

09:25 的值将是 09:15,09:20,09:25 的平均值。

我尝试了 window 函数和聚合,但似乎无法正常工作。

感谢您的意见!

如果每行的格式为:

,我将从重新格式化数据开始
  Timestamp                Temperature      Humidity 
  2018-05-01 09:00:00      40.1             80
  2018-05-01 09:05:00      40.2             80
  2018-05-01 09:10:00      40               82
  2018-05-01 09:15:00      41               81
  2018-05-01 09:20:00      40.8             81
  2018-05-01 09:25:00      40.2             84

这会将您的数据大小减半,并减少您使用的存储量 space。您可以在 Dataprep 中使用 “将值转换为列” 功能。这将为温度创建一列,为湿度创建一列。

进入该格式后,您可以使用 window 函数 ROLLINGAVERAGE 计算平均值。通过设置以下参数,使函数计算前面两行的平均值:

rollingaverage(Temperature, 2, 0)

第一个参数是列名,第二个是前面的行,最后一个是计算平均值的后面行数。对湿度列重复上述功能。结果应类似于以下内容:

接下来,在筛选行选项下,使用‘定期行’函数从第三个条目开始每隔三行保留一次。设置参数如下:

去掉原来的两个Temperature和Humidity行,你会得到以下内容:

  Timestamp                Temperature      Humidity 
  2018-05-01 09:10:00      40.1             80.67
  2018-05-01 09:25:00      41               82