标签: data-processing

用于聚合和滑动窗口实现的java框架

我有一个事件流和一个key-val存储.值大小受4Kb限制.事件发生率不是很高 - 每天最多几百次.

在这个值中,我需要存储一个数据结构的序列化表示,它提供了一个有效的机制,用于读取,存储和更新3个月内的聚合事件计数,每日和每周聚合以及1/2小时的滑动窗口.

对于简单事件计数聚合和事件计数标准偏差,解决方案需要有效地执行以下任务.(下面提到的所有任务的最长期限为3个月):

  1. 不断更新(以惰性方式 - 当相应的事件到达时) - 如果最新计算的聚合太旧 - 抛出过时的数据并创建新的聚合
  2. 由读取请求触发的更新(用户请求某些信息,例如特定用户的事件计数,单个用户的事件计数的标准偏差等),以防最新计算的聚合太旧 - 抛出它们

我想知道:是否有任何java开源框架可以帮助实现上述

我也很欣赏设计建议:设计模式等.

使用标准java API从头开始实现解决方案并不困难,但在此之前我会欣赏一些开源框架建议(如果有的话).

除了一些理论文章,基于SQL的解决方案和IBM(非开源工具包称为SPL)之外,谷歌搜索解决方案并没有引导我.

java architecture aggregate data-processing

9
推荐指数
1
解决办法
1529
查看次数

将许多行绘制为热图

我有一大堆(~1000)来自我正在尝试处理的数据记录器的文件.

如果我想从这些日志文件中的一个中绘制趋势,我可以使用它

plot(timevalues,datavalues)
Run Code Online (Sandbox Code Playgroud)

我希望能够以与示波器具有"持久"模式的方式类似的方式同时查看所有这些线.

示波器Diplay

我可以拼凑一些使用直方图的东西,但我希望有一个预先存在的或更优雅的解决方案来解决这个问题.

matlab plot logfile-analysis data-processing

8
推荐指数
2
解决办法
1394
查看次数

为 PyTorch 使用大型数据集的最有效方法?

也许之前已经问过这个问题,但我无法找到适合我情况的相关信息。

我正在使用 PyTorch 创建一个用于图像数据回归的 CNN。我没有正式的学术编程背景,所以我的许多方法都是临时的,而且效率非常低。有时我可以回顾我的代码并在以后清理内容,因为效率低下并没有那么严重以至于性能受到显着影响。但是,在这种情况下,我使用图像数据的方法需要很长时间,使用大量内存,并且每次我想测试模型中的更改时都会这样做。

我所做的基本上是将图像数据加载到 numpy 数组中,将这些数组保存在 .npy 文件中,然后当我想将所述数据用于模型时,我导入该文件中的所有数据。我不认为数据集真的那么大,因为它由 5000 张 64x64 大小的 3 个颜色通道图像组成。然而,我的内存使用率在加载时高达 70%-80%(16gb),每次加载需要 20-30 秒。

我的猜测是我对加载它的方式很愚蠢,但坦率地说,我不确定标准是什么。我应该以某种方式在我需要之前将图像数据放在某个地方,还是应该直接从图像文件中加载数据?在任何一种情况下,独立于文件结构的最佳、最有效的方法是什么?

我真的很感激这方面的任何帮助。

python memory hdf5 data-processing pytorch

8
推荐指数
2
解决办法
7913
查看次数

验证数据时减少圈复杂度的最佳方法是什么?

现在我正在开发一个Web应用程序,它从一个有可能返回null结果的数据库中接收大量数据.当经历应用程序的圈复杂度时,许多函数的权重在10-30之间.大多数具有高数字的函数有很多类似于以下的行:

If Not oraData.IsDBNull(4) Then row("Field") = oraData.GetString(4)
Run Code Online (Sandbox Code Playgroud)

这引出了我的问题,试图降低这些数字的最佳方法是什么?现在我正在考虑将大部分功能都放在10以下.

cyclomatic-complexity code-metrics data-processing

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

免费安全分布式制作系统的Linux

是否有任何良好的语言无关的分布式系统为Linux安全和免费?

背景资料:

我运行的科学实验(计算机科学实验)有时会有大的依赖树,偶尔会有数千或数万个树节点.此依赖关系树位于数据文件,数据处理可执行文件和结果文件之上.

多年来我一直在尝试各种技术,包括:

  1. 使用数据库滚动我自己的依赖关系跟踪器并在每个工作机器上运行脚本.这可能会有点麻烦,尤其是在尝试使用非脚本语言时.
  2. 将所有处理命令放在单个makefile中,伪目标可以在不同的工作机器上手动"构建".这不需要特殊的工具,但是手动将工作分解为大小均匀的伪目标块并在每个工作箱上正确调用"make"可能会很麻烦.
  3. distmake:自动分配来自单个makefile的命令执行...

我基本上都在寻找像distmake这样的东西,但更安全.据我所知,distmake基本上为每个工作节点留下了一个敞开的后门.

如果替换者比distmake更强大也会很好.如果您突破主要的distmake调用,它可以关闭后门服务器,但它不能正确地终止工作节点上的执行进程.


澄清:

我正在使用makefile处理数据,而不是使用gcc编译和链接.从我在文档中看到的内容来看,distcc是一个用于分发gcc的专用工具.我将在共享文件系统上托管的非常大的数据文件上运行我自己的可执行文件,而不是源文件上的gcc,因此distcc没有帮助.

工作节点是外部可见的机器,因此我希望任何工作器守护程序至少与ssh一样安全.在没有阅读源代码的情况下,我可以告诉他们,distmake工作者守护进程打开一个端口并接受任何附加到它的人的命令.它们将以启动守护程序的用户身份执行命令.

distributed makefile data-processing

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

使用Hibernate加载20K产品,修改实体并更新到db

我正在使用hibernate来更新我的数据库中的20K产品.

截至目前,我正在提取20K产品,循环遍历它们并修改一些属性,然后更新数据库.

所以:

load products

foreach products
   session begintransaction
   productDao.MakePersistant(p);
   session commit();
Run Code Online (Sandbox Code Playgroud)

截至目前,与标准的jdbc相比,事情相当缓慢,我该怎么做才能加快速度?

我相信我在这里做错了什么.

java orm hibernate data-processing

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

从仅包含0或仅包含0的数据框中删除行

我正在尝试在R中创建一个函数,它允许我根据行是否包含一个零的单个列来过滤我的数据集.此外,有时我只想删除所有列中为零的行.

而且,这是它变得有趣的地方; 并非所有列都包含数字,列数可能会有所不同.

我试图将我的一些数据粘贴到我想要获得的结果中.

unfiltered:
    ID  GeneName    DU145small  DU145total  PC3small    PC3total
    1   MIR22HG     33221.5     1224.55     2156.43     573.315
    2   MIRLET7E    87566.1     7737.99     25039.3     16415.6
    3   MIR612      0           0           530.068     0
    4   MIR218-1    0           0           1166.88     701.253
    5   MIR181B2    70723.2     3958.01     6209.85     1399.34
    6   MIR218-2    0           0           0           0
    7   MIR10B      787.516     330.556     0           20336.4
    8   MIR3176     0           0           0           0

any rows with containing a zero removed:
    ID  GeneName    DU145small  DU145total  PC3small    PC3total
    1   MIR22HG     33221.5     1224.55     2156.43     573.315
    2   MIRLET7E …
Run Code Online (Sandbox Code Playgroud)

filtering r bioinformatics data-processing

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

有没有办法结合这些查询?

我已经开始将HackerRank上的一些编程问题作为一种"高效的分心".

我正在研究SQL部分的前几个并遇到了这个问题(链接):

Query the two cities in STATION with the shortest and 
longest CITY names, as well as their respective lengths 
(i.e.: number of characters in the name). If there is 
more than one smallest or largest city, choose the one 
that comes first when ordered alphabetically.

Input Format

The STATION table is described as follows:
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

where LAT_N is the northern latitude and LONG_W is 
the western longitude.

Sample Input

Let's say that CITY only has four entries: …
Run Code Online (Sandbox Code Playgroud)

database sql-server data-processing

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

如何使用pyspark(2.1.0)LdA获取与每个文档相关的主题?

我正在使用pyspark的LDAModel从语料库中获取主题.我的目标是找到与每个文档相关的主题.为此,我尝试根据Docs 设置topicDistributionCol.由于我是新手,我不确定本专栏的目的是什么.

from pyspark.ml.clustering import LDA
lda_model = LDA(k=10, optimizer="em").setTopicDistributionCol("topicDistributionCol")
// documents is valid dataset for this lda model
lda_model = lda_model.fit(documents)
transformed = lda_model.transform(documents)

topics = lda_model.describeTopics(maxTermsPerTopic=num_words_per_topic)
print("The topics described by their top-weighted terms:")
print topics.show(truncate=False)
Run Code Online (Sandbox Code Playgroud)

它列出了termIndices和termWeights的所有主题.

在此输入图像描述

下面的代码会给我topicDistributionCol.这里每行都是针对每个文档的.

print transformed.select("topicDistributionCol").show(truncate=False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想得到像这样的文档主题矩阵.有没有可能与pysparks LDA模型?

doc | topic 
1   |  [2,4]
2   |  [3,4,6]
Run Code Online (Sandbox Code Playgroud)

注意:我之前使用gensims LDA模型使用以下代码完成了此操作.但我需要使用pysparks LDA模型.

texts = [[word for word in document.lower().split() if word not in stoplist] for document in documents]
dictionary = corpora.Dictionary(texts)

corpus = …
Run Code Online (Sandbox Code Playgroud)

data-mining data-processing lda topic-modeling pyspark

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

如何在使用Pandas从CSV读取整数时优雅地回退到"NaN"值?

在使用read_csvPandas时,如果我希望将给定列转换为类型,则格式错误的值将中断整个操作,而不会显示有问题的值.

例如,运行类似于:

import pandas as pd
import numpy as np


df = pd.read_csv('my.csv', dtype={ 'my_column': np.int64 })
Run Code Online (Sandbox Code Playgroud)

将导致以错误结束的堆栈跟踪:

ValueError: cannot safely convert passed user dtype of <i8 for object dtyped data in column ...
Run Code Online (Sandbox Code Playgroud)

如果我有错误消息中的行号或违规值,我可以将它添加到已知NaN值列表中,但这样我就无能为力了.

有没有办法告诉解析器忽略失败并np.nan在这种情况下返回?

Post Scriptum:有趣的是,在解析后没有任何类型的建议(没有dtype参数),d['my_column'].value_counts()似乎推断出dtype正确并np.nan自动正确放置,即使dtype系列的实际是一般的object,几乎每个绘图和统计操作都会失败

python csv data-processing pandas

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