我想问一些SO'ers他们关于用于索引时间序列的最佳数据结构的意见(也就是列式数据,也就是扁平线性).
基于采样/离散特征存在两种基本类型的时间序列:
定期离散(每个样本采用共同频率)
不规则的离散化(样本在任意时间点进行)
需要的查询:
时间范围内的所有值[t0,t1]
时间范围[t0,t1]中的所有值都大于/小于v0
时间范围[t0,t1]中值范围为[v0,v1]的所有值
数据集包括汇总的时间序列(通过不规则离散化的那种)和多变量时间序列.所讨论的数据集大小约为15-20TB,因此处理以分布式方式执行 - 因为上述一些查询将导致数据集大于任何一个系统上可用的物理内存量.
此上下文中的分布式处理还意味着调度所需的数据特定计算以及时间序列查询,以便计算可以尽可能接近数据发生 - 从而减少节点到节点的通信(有点类似于map /减少范式) - 在计算和数据的短暂接近是非常关键的.
该指数应该能够应对的另一个问题是,绝大多数数据是静态/历史性的(99.999 ...%),但是每天都会增加新数据,想想"在现场传感器"或"市场数据".想法/要求是能够以尽可能低的延迟更新任何正在运行的计算(平均值,garch等),其中一些运行计算需要历史数据,其中一些将超过可以合理缓存的数据.
我已经考虑过HDF5,它对于较小的数据集效果很好/有效但随着数据集变大而开始拖动,前端也没有本机并行处理功能.
寻找建议,链接,进一步阅读等(C或C++解决方案,库)
我想在大文本语料库中应用快速在线降维技术,如(在线/小批量)字典学习.我的输入数据自然不适合内存(这就是我想使用在线算法的原因)所以我正在寻找一种可以迭代文件而不是将所有内容加载到内存中的实现.是否可以使用sklearn执行此操作?有替代品吗?
谢谢注册
我想知道是否有算法计算未绑定数据集的平均值和标准差.
例如,我正在监测一个测量值,比如电流.我想得到所有历史数据的平均值.每当有新值出现时,更新均值和stdev?因为数据太大而无法存储,我希望它可以在不存储数据的情况下即时更新均值和stdev.
即使数据被存储,标准方式(d1 + ... + dn)/ n也不起作用,总和将吹灭数据表示.
我通过求和(d1/n + d2/n + ... d3/n),如果n为hugh,则误差太大并累积.此外,在这种情况下,n是未绑定的.
数据的数量肯定是未绑定的,无论何时,它都需要更新值.
有人知道是否有算法吗?
我正在尝试将大型csv文件读入R.尽管文件很大,但我只想处理满足特定条件的某些行(例如,Variable2> = 3).这是一个小得多的数据集.我想直接将这些行读入数据帧,而不是将整个数据集加载到数据帧中,然后根据条件进行选择.主要原因是数据集不容易适应桌面或笔记本电脑的内存.我正在寻找仅使用R的解决方案,并且不需要python或其他语言.谢谢.
这是我第一次创建一个包含文件读写的程序.实际上我想知道这样做的最佳技巧是什么.因为当我把我的工作与同学比较时,我们的逻辑彼此非常不同.
你看,我们的老师要求我们做一个简单的学生列表系统,用户可以在其中添加,编辑和删除记录.他要求我们创建一个文件来保存所有记录,以便我们在下次使用该程序时可以访问它.
我解决这个问题的方法是在程序打开菜单之前,我读取里面的所有记录并将其保存在数组[]中.这样做,我可以操纵所有记录.然后在用户退出程序之前,我将其保存在同一个文件中并覆盖其上的所有记录.
我同学的解决方案是这样的.当她添加记录时,她访问该文件并附加数据,当她编辑记录时,她访问该文件并编辑特定记录,当她删除记录时,她访问该文件并删除记录.所以她所做的就是她所做的每一项功能,她正在访问该文件.
我们的两项工作当然都可以编码.但我想知道,如果我们处理成千上万的记录,那么使用它会更有效率.还是有其他解决方案比我们做的更好.也许您可以与我们分享您的文件处理经验......谢谢.
我想创建一个1D NumPy数组,该数组由1000个背对背重复的另一个1D数组组成,不需要复制1000次数据.
可能吗?
如果它有帮助,我打算将两个数组都视为不可变.
我想根据第6列中的值(大约10*10 ^ 3个唯一值)拆分一个大文件(10 ^ 6行).但是,由于记录的数量,我无法使其正常工作.它应该很容易,但它已经花了好几个小时,我没有进一步.
我尝试了两种选择:
选项1
awk '{print > $6".txt"}' input.file
awk: cannot open "Parent=mRNA:Solyc06g051570.2.1.txt" for output (Too many open files)
Run Code Online (Sandbox Code Playgroud)
选项2
awk '{print > $6; close($6)}' input.file
Run Code Online (Sandbox Code Playgroud)
这不会导致错误,但它创建的文件只包含对应于'grouping'值$ 6的最后一行
这是我的文件的开头,但是,这个文件不会导致错误,因为它太小了:
exon 3688 4407 + ID=exon:Solyc06g005000.2.1.1 Parent=mRNA:Solyc06g005000.2.1
exon 4853 5604 + ID=exon:Solyc06g005000.2.1.2 Parent=mRNA:Solyc06g005000.2.1
exon 7663 7998 + ID=exon:Solyc06g005000.2.1.3 Parent=mRNA:Solyc06g005000.2.1
exon 9148 9408 + ID=exon:Solyc06g005010.1.1.1 Parent=mRNA:Solyc06g005010.1.1
exon 13310 13330 + ID=exon:Solyc06g005020.1.1.1 Parent=mRNA:Solyc06g005020.1.1
exon 13449 13532 + ID=exon:Solyc06g005020.1.1.2 Parent=mRNA:Solyc06g005020.1.1
exon 13711 13783 + ID=exon:Solyc06g005020.1.1.3 Parent=mRNA:Solyc06g005020.1.1
exon 14172 14236 + ID=exon:Solyc06g005020.1.1.4 Parent=mRNA:Solyc06g005020.1.1 …Run Code Online (Sandbox Code Playgroud) 我有大约300个文本文件,其中包含跟踪器,种子和同伴的数据.每个文件的组织方式如下:
tracker.txt
time torrent
time peer
time peer
...
time torrent
...
Run Code Online (Sandbox Code Playgroud)
我有每个跟踪器的几个文件,并且重复了大部分信息(相同的信息,不同的时间).
我希望能够分析我所拥有的内容,并报告有关事情的统计数据
数据的庞大数量使我难以接受.这是我尝试过的.
MySQL的
我把所有东西都放进了数据库; 每个实体类型一个表和用于保存关系的表(例如,此torrent位于此跟踪器上).
将信息添加到数据库的速度很慢(当我尝试这个时,我没有13GB的信息),但之后分析这些关系是不行的.每个稍微复杂的查询都需要24小时才能完成(如果有的话).
一个示例查询将是:
SELECT COUNT(DISTINCT torrent)
FROM TorrentAtPeer, Peer
WHERE TorrentAtPeer.peer = Peer.id
GROUP BY Peer.ip;
Run Code Online (Sandbox Code Playgroud)
我尝试在我的my.cnf文件中增加内存分配,但似乎没有帮助.我使用了my-innodb-heavy-4G.cnf设置文件.
编辑:添加表格详细信息
这是我正在使用的:
Peer Torrent Tracker
----------- ----------------------- ------------------
id (bigint) id (bigint) id (bigint)
ip* (int) infohash* (varchar(40)) url (varchar(255))
port (int)
TorrentAtPeer TorrentAtTracker
----------------- ----------------
id (bigint) id (bigint)
torrent* (bigint) torrent* (bigint)
peer* (bigint) tracker* (bigint) …Run Code Online (Sandbox Code Playgroud) 我一直在探索Stack Overflow数据转储,因此利用友好的XML和正则表达式"解析".我尝试使用各种Haskell XML库来查找特定用户按文档顺序排列的第一篇文章都遭遇了令人讨厌的颠簸.
import Control.Monad
import Text.HTML.TagSoup
userid = "83805"
main = do
posts <- liftM parseTags (readFile "posts.xml")
print $ head $ map (fromAttrib "Id") $
filter (~== ("<row OwnerUserId=" ++ userid ++ ">"))
posts
Run Code Online (Sandbox Code Playgroud)
import Text.XML.HXT.Arrow
import Text.XML.HXT.XPath
userid = "83805"
main = do
runX $ readDoc "posts.xml" >>> posts >>> arr head
where
readDoc = readDocument [ (a_tagsoup, v_1)
, (a_parse_xml, v_1)
, (a_remove_whitespace, v_1)
, (a_issue_warnings, v_0)
, (a_trace, v_1)
]
posts …Run Code Online (Sandbox Code Playgroud) 我有一个方形矩阵,有几万行和一列,只有几1吨0,所以我用这个Matrix包以高效的方式存储在R中.由于base::matrix内存不足,对象无法处理该数量的单元格.
我的问题是我需要逆矩阵以及此类矩阵的Moore-Penrose广义逆,这是我目前无法计算的.
我尝试过的:
solve产生Error in LU.dgC(a) : cs_lu(A) failed: near-singular A (or out of memory)错误MASS::ginv与Matrix班级不相容Matrix为例如bigmemory::big.matrix,而后者也MASS::ginv无论如何也无法工作如果我尝试计算矩阵的Choleski分解以便稍后调用Matrix::chol2inv它,我会收到以下错误消息:
Error in .local(x, ...) :
internal_chm_factor: Cholesky factorization failed
In addition: Warning message:
In .local(x, ...) :
Cholmod warning 'not positive definite' at file ../Cholesky/t_cholmod_rowfac.c, line 431
Run Code Online (Sandbox Code Playgroud)基于相关问题,我还尝试pbdDMAT了单个节点上的包,但pbdDMAT::chol产生了Cholmod error …