作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用多个领先和滞后从数据集中计算附加功能。大量超前和滞后会导致内存不足错误。
数据框:
|----------+----------------+---------+---------+-----+---------|
| DeviceID | Timestamp | Sensor1 | Sensor2 | ... | Sensor9 |
|----------+----------------+---------+---------+-----+---------|
| | | | | | |
| Long | Unix timestamp | Double | Double | | Double |
| | | | | | |
|----------+----------------+---------+---------+-----+---------|
// Each window contains about 600 rows
val w = Window.partitionBy("DeviceID").orderBy("Timestamp")
var res = df
val sensors = (1 to 9).map(i => s"Sensor$i")
for (i <- 1 to 5) {
for (s <- sensors) {
res = res.withColumn(lag(s, i).over(w))
.withColumn(lead(s, i)).over(w)
}
// Compute features from all the lag's and lead's
[...]
}
RAM: 16G
JVM heap: 11G
Window -> WholeStageCodeGen -> Window -> WholeStageCodeGen ...
最佳答案
你可以尝试类似的东西
res = res.select('*', lag(s"Sensor$1", 1).over(w), lag(s"Sensor$1", 2).over(w), ...)
select
而不是很多
withColumn
关于apache-spark - 大量窗口函数导致内存不足(滞后、超前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50198364/
我有跟踪数据,我使用 LEAD 和 LAG 修改开始和结束日期,以确保上一个结束时间等于下一个开始时间。这些查询在 groupId 上进行分区,按开始时间排序。 我的问题是当其中一条记录的开始和结束时
我需要使用多个领先和滞后从数据集中计算附加功能。大量超前和滞后会导致内存不足错误。 数据框: |----------+----------------+---------+---------+----
场景: ticket 有 StartDate 和 EndDate ,如果 StartDate 和 EndDate 存在,则创建一个新的数据框作为在下面显示所需的输出。 Pyspark 数据集如下所示
我是一名优秀的程序员,十分优秀!