小编spi*_*ect的帖子

Dask 工作线程的内存清理

我正在多节点分布式 Dask 集群上运行多个并行任务。然而,一旦任务完成,worker 仍然持有大量内存,集群很快就会被填满。

client.restart()我在每个任务之后都尝试过client.cancel(df),第一个任务会杀死工作人员并发送到CancelledError其他正在运行的任务,这很麻烦,第二个任务没有多大帮助,因为我们在 Dask 的函数中使用了很多自定义对象和函数map。添加del已知变量gc.collect()也没有多大帮助。

我确信大部分内存占用是由于自定义 python 函数和使用client.map(..).

我的问题是:

  1. 有没有一种从命令行或其他方式类似的方法trigger worker restart if no tasks are running right now
  2. 如果不是,这个问题有哪些可能的解决方案?我不可能避免 Dask 任务中的自定义对象和纯 python 函数。

python dask dask-distributed

5
推荐指数
1
解决办法
3097
查看次数

使用Java lambda的外部可配置过滤

假设我有一个外部JSON:

[{
    "condition": "equals",
    "field": "name",
    "value": "jack"
  },
  {
    "condition": "greater",
    "field": "age",
    "value": 25
  }
]
Run Code Online (Sandbox Code Playgroud)

这意味着我想在名为as "jack"和的人的Person对象列表中检查age > 25.使用Java 8过滤相当简单(显示的示例仅在名称上过滤).

但是,我想使此过滤器可配置,并且还应用多个过滤器.假设下面的Person pojo(这是不言自明的),取名字和年龄,我怎样才能使过滤器动态或可配置?

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Accessors and Mutators
}
Run Code Online (Sandbox Code Playgroud)
List<Person> persons = Arrays.asList(
    new Person("mkyong", 30),
    new Person("jack", 20),
    new Person("lawrence", 40)
);

Person result1 = persons.stream()            // Convert to steam
    .filter(x -> …
Run Code Online (Sandbox Code Playgroud)

java lambda filter java-8 java-stream

3
推荐指数
1
解决办法
371
查看次数

Mapbox开源并使用密钥?

我已经浏览了 MapBox 的开源库,主要对使用mapbox-gl-js感兴趣

但是,我无法理解为什么我需要在开源库中使用 mapbox 的密钥。它是为使用密钥而构建的,否则我不能吗?我想使用这个库作为我公司的原型,并想确定其含义是什么。

javascript maps mapbox mapbox-gl-js

2
推荐指数
1
解决办法
543
查看次数