小编yas*_*eco的帖子

在饼图上显示值和百分比

这是我当前的代码

values = pd.Series([False, False, True, True])
v_counts = values.value_counts()
fig = plt.figure()
plt.pie(v_counts, labels=v_counts.index, autopct='%.4f', shadow=True);
Run Code Online (Sandbox Code Playgroud)

目前,它仅显示百分比(使用autopct

我想同时显示百分比和实际值(我不介意位置)

python matplotlib pie-chart plot-annotations

11
推荐指数
2
解决办法
2万
查看次数

是否可以在多线程应用程序中使用HashMap <T>?

假设我们有多个线程,我们在线程之间划分可能的keySet(即key % thread_i),因此没有密钥冲突.

我们可以安全地使用HashMap<T>而不是ConcurrentHashMap<T>吗?

java multithreading

10
推荐指数
1
解决办法
158
查看次数

普罗米修斯返回“仅允许向量选择器的范围”

这是我的查询,它应该显示表单的每个计数器的增量taskcnt.*

delta(label_replace({__name__=~"taskcnt.*"}, "old_name", "$1", "__name__", "(.+)")[1w])
Run Code Online (Sandbox Code Playgroud)

我越来越:

执行查询时出错:1:83:解析错误:范围只允许向量选择器

基本上,没有label_replace我会得到:

向量不能包含具有相同标签集的度量

我怎样才能使这个查询工作?

prometheus

7
推荐指数
2
解决办法
5544
查看次数

MongoDB:如何在嵌套数组中更新插入对象?

考虑以下文档:

{
    "countries" : [ 
        {
            "country" : "France",
            "cities" : [ 
                {
                    "city" : "Paris",
                    "population" : 100
                }
            ]
        }, 
        {
            "country" : "England",
            "cities" : [ 
                {
                    "city" : "London",
                    "population" : 100
                }, 
                {
                    "city" : "Liverpool",
                    "population" : 100
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想添加或更新城市(假设我们有方法upsert(country, city, population)

我们有3个案例:

  1. 国家和城市已经存在 - 这只是更新(替换城市对象)
  2. 国家存在但城市不存在 - 只需要$push大概
  3. 国家和城市不存在 - 需要准备包含新城市的大小数组的$push国家对象。cities1

是否可以将所有这三个操作合并到一个查询中?

顺便说一句,我了解到,$addToSet但就我的理解而言,它会比较所有对象的键,在我看来,它不会起作用,因为我也有cities一个数组。

使用 ArrayFilters 进行更新相当简单:

q = …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

7
推荐指数
1
解决办法
1145
查看次数

Spring Data MongoDB:MergeOperation 返回整个集合。为什么?

我正在运行 MongoDB 聚合,其中最后一个阶段是$merge将某些字段写入另一个集合。基本上,这个 $merge 应该只对单个文档产生影响(这就是为什么我们有on: "_id".

下面是我用 Java 实现的方法:

var merge = Aggregation.merge().intoCollection("items")
                .on("_id")
                .whenMatched(MergeOperation.WhenDocumentsMatch.mergeDocuments())
                .whenNotMatched(MergeOperation.WhenDocumentsDontMatch.discardDocument())
                .build();

var agg = Aggregation.newAggregation(match, group, merge);
var aggResult = mongoTemplate.aggregate(agg, "prices", Item.class);
  
Run Code Online (Sandbox Code Playgroud)

聚合执行了它需要的操作,我可以看到请求的文档已更改,但问题是aggregate()返回集合中的所有文档。

这是一个主要缺点,当集合足够大时,无法很好地扩展。

如何更改我的查询,使其仅返回更改后的文档。或者,如果不可能,只需应用查询而不返回任何内容。

java mongodb spring-data spring-data-mongodb

7
推荐指数
1
解决办法
1162
查看次数

流处理架构

我正在设计一个系统,其中有一个主要的对象流,并且有多个工人从该对象产生一些结果.最后,有一些特殊/独特的工作者(根据图论)的某种"接收器",它获取所有结果,并将它们处理成写入某个DB的最终对象.

工人可能依赖于其他一些工人的结果(因此,等待他们的结果)

现在,我面临几个问题:

  1. 可能是一名工人比另一名工人慢得多.你怎么处理那件事呢?添加更慢类型的更多工作者(=缩放)?(也许是动态的)
  2. 假设W_B依赖于W_A.如果W_B由于某种原因而关闭,则流程将停止,系统将停止工作.所以我想让系统以某种方式绕过这个工人.
  3. 此外,最终工作人员如何决定何时对结果进行操作?假设它有A和B的结果,但缺少C的结果.可能是C下降或者此刻它只是非常慢.它怎么能做出决定?

值得一提的是,它不是实时应用程序,而是离线处理系统(即您可以访问数据库并更改记录),但与此同时,它必须以"高速度"处理相对大量的对象".

关于技术,
我正在使用Java开发系统,但我并没有受到特定技术的限制.

如果你能帮助我完成系统的总体设计,我会很高兴的.

非常感谢!

java stream-processing bigdata system-design event-stream-processing

6
推荐指数
1
解决办法
122
查看次数

使用 Python 在图像上应用过滤器

这是我的代码:

from matplotlib.pyplot import imread
import matplotlib.pyplot as plt
from scipy.ndimage.filters import convolve


k3 = np.array([ [-1, -1, -1], [-1, 8, -1], [-1, -1, -1] ])
img = imread("lena.jpg")
channels = []
for channel in range(3):
    res = convolve(img[:,:,channel], k3)
    channels.append(res)

img = np.dstack((channels[0], channels[1], channels[2]))
plt.imshow(img)
plt.show()
Run Code Online (Sandbox Code Playgroud)

k3过滤器假设是一个边缘检测过滤器。相反,我得到了一个看起来像白噪声的奇怪图像。

为什么?

这是输出:

在此处输入图片说明

numpy image-processing matplotlib python-3.x data-science

6
推荐指数
1
解决办法
6381
查看次数

如何一次查询所有/ actuator / metrics?

我将Spring Boot执行器用作内部API,另一个API用来监视Spring Boot应用程序。

问题是您必须查询每个属性。即 /actuator/metrics/jvm.memory.used

因此,对于每个GET请求,我都必须发出多个请求(与指标一样多)。

是否可以一次查询所有这些?

java spring-boot spring-boot-actuator

6
推荐指数
1
解决办法
215
查看次数

为什么我用OkHttp收到java.net.SocketTimeoutException?

这是我的配置:

httpClient = new OkHttpClient.Builder()
        .callTimeout(Duration.ofSeconds(60))
        .connectTimeout(Duration.ofSeconds(60))
        .readTimeout(Duration.ofSeconds(60))
        .writeTimeout(Duration.ofSeconds(60))
        .build();
Run Code Online (Sandbox Code Playgroud)

我有一个使用此客户端的多线程进程。运行几秒钟后,我得到:

java.net.SocketTimeoutException:
在okio.Okio $ 4.newTimeoutException(Okio.java:232)
在okio.AsyncTimeout.exit(AsyncTimeout.java:286)
在okio.AsyncTimeout $ 2.read(AsyncTimeout.java:241)
在.RealBufferedSource.indexOf(RealBufferedSource.java:358)

如果将超时配置为60秒怎么办?

编辑:
即使添加自定义调度程序也无济于事:

Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(Integer.MAX_VALUE);
dispatcher.setMaxRequestsPerHost(Integer.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)

技术细节:
与我所说的相反,我在Linux机器上同时运行客户端和服务器:

客户端计算机:net.ipv4.tcp_keepalive_time = 7200
服务器计算机:net.ipv4.tcp_keepalive_time = 7200

java http okhttp3

6
推荐指数
1
解决办法
383
查看次数

如何处理从 jakarta.activation 和 java.activation 读取包 javax.activation

当尝试运行其中一个模块时,我看到许多有关此错误的消息。例如:

java: module org.apache.commons.compress reads package javax.activation from both jakarta.activation and java.activation
Run Code Online (Sandbox Code Playgroud)

我应该怎么办?

java java-module java-11

5
推荐指数
0
解决办法
2026
查看次数