问题标签 [bcolz]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 将多节点 PyTable 转换为 bcolz
我希望对 bcolz 进行一些实验,看看它是否与我需要做的兼容。我有一个由大约 1100 万行和大约 120 列组成的数据集。此数据当前以 PyTables“表”格式存储在 HDF5 文件中。数据在 HDF5 文件中分为几个“组”(单独的节点),每个组包含不同的列。
我想要做的是将所有这些数据转换为磁盘上的 bcolz ctable,而不是一次将其全部读入内存。通过这样做,我能够为第一组做到这一点(basic
是其中一个组的名称):
当我这样做时,内存使用率仍然很低,表明它没有立即读取整个表。伟大的!但是,如果我尝试再次执行此操作,则附加到同一个 ctable:
是的,当然它已经存在了。bcolz 的优点之一应该是很容易添加新列。如何利用这一优势将现有 HDF5 文件中的新列直接添加到现有的磁盘 ctable 中,而无需先将所有新列读入内存?
python - 将数据附加到 bcolz 表中的性能
我刚刚开始使用该bcolz
软件包并在ctables
. 使用函数创建表fromiter
,即:
速度很快,在我的计算机上大约需要 30 毫秒(带有 SSD 存储的 2.7GHz Core i7),但是第二个示例:
非常慢(45 秒)。fromiter
我可以通过不写入磁盘来使其更接近时间(即删除rootdir='mydir', mode="w"
,但它仍然在 2 秒左右)。
这个例子使用了很多非常小的附加,我想知道当一个人有很多数据时这是否是推荐的用例。这些操作应该花费多长时间没有任何硬性数字,只是有很多关于图书馆快速的建议。
我尝试修改代码以将数据写入块中:
现在这需要 45 毫秒——如果我不写入磁盘,则减少到 6 毫秒。这似乎更符合bcolz
我所见过的案例的建议用途。
我找不到太多关于写作时需要阻塞的文档,所以我认为这可能是由于我的系统造成的?
pandas - 为什么 dask.dataframe compute() 结果在特定情况下会给出 IndexError?如何找到异步错误的原因?
由于数据量大,使用当前版本的dask ('0.7.5', github: [a1]) 时,我能够通过dask.dataframe api 执行分区计算。但是对于作为记录存储在 bcolz ('0.12.1', github: [a2]) 中的大型 DataFrame,我在执行此操作时遇到了 IndexError:
错误是(缩写的回溯输出):
实际上,只有在执行 dd.concat 操作时才会出现错误。就像是
正在工作。
但是,当在内存中读取部分数据时,在某些情况下也会出现此错误,至少对于分区长度 (npartition) >1 和特定数据大小而言。
请参阅完整的测试代码_test_dask_error.py和带有回溯的完整输出_test_out.txt。
实际上,在那一步我停止了调查,因为我不知道如何在 async.py 中将这个错误调试为根本原因。当然,我会将其报告为错误(如果没有提示用户/使用错误)。但是:如何进行调试以找到根本原因?
_[a1]:_https://github.com/blaze/dask/tree/077b1b82ad03f855a960d252df2aaaa72b5b1cc5
_[a2]:_https://github.com/Blosc/bcolz/tree/562fd3092d1fee17372c11cadca54d1dab10cf9a
python-3.x - Pandas / odo / bcolz 从大型 CSV 文件中选择性加载行
假设我们有大型 csv 文件(例如 200 GB),其中只有一小部分行(例如 0.1% 或更少)包含感兴趣的数据。
假设我们将这样的条件定义为让一个特定列包含来自预定义列表的值(例如,10K 个感兴趣的值)。
odo
Pandas 或 Pandas是否促进了将这种类型的行选择性加载到数据框中的方法?
python - 从 Redshift 将大于内存的数据加载到 bcolz
我想在本地保存红移查询的输出。我尝试使用blaze/odo
但默认设置尝试在写入之前将所有数据加载到内存中并尝试流式传输数据会引发其他错误,描述了另一个问题:Streaming results with Blaze and SqlAlchemy
由于该问题没有任何答案,我正在寻找另一种方法来做到这一点。
什么是从 Redshift 将大于内存的查询结果加载到 bcolz 的简单、可靠且相当有效的方法?
python - 存储在 bcolz 中时数据大小爆炸
我有一个包含约 7M 行和 3 列的数据集,2 个数字和 1 个由约 20M 不同的字符串 uuid 组成。数据作为csv文件需要3G左右,castra可以将其存储在2G左右。我想用这些数据测试 bcolz。
我试过了
在耗尽磁盘上的 inode 并崩溃之前生成了约 70G 的数据。
将这样的数据集导入 bcolz 的推荐方法是什么?
python - 以 bcolz 格式保存 dask 数据帧
dask 文档指出:“BColz 是一个磁盘上的、分块的、压缩的、列存储。这些属性使其对 dask.dataframe 非常有吸引力,它可以在其上运行得特别好。有一个特殊的 from_bcolz 函数。”
但是,我找不到如何将 dask 数据帧保存到 bcolz 的示例。推荐的方法是什么?
python - 将大于内存的数据写入 bcolz
所以我得到了我想放入 bcolz 的这个大刻度数据文件(一天 60GB 未压缩)。我计划逐块读取这个文件并将它们附加到 bcolz 中。
据我所知, bcolz 只支持追加列而不是行。但是,我会说,刻度数据在行方面比在列方面更重要。例如:
- 有人对如何做到这一点有任何建议吗?
- 在使用 bcolz 时,我应该选择的压缩级别有什么建议吗?我更关心以后的查询速度而不是大小。(我在问这个,因为如下图所示,似乎一级压缩的 bcolz ctable 实际上比未压缩的 ctable 具有更好的查询速度。所以我的猜测是查询速度不是具有压缩级别的单调函数)。参考: http: //nbviewer.jupyter.org/github/Blosc/movielens-bench/blob/master/querying-ep14.ipynb
keras - Keras - 关于性能 - bcolz 比使用数据生成器更好吗?
我正在努力解决以下几点:
- 什么时候应该使用 bcolz 来代替 keras 的数据生成器?看起来 keras
model
有 api 来接受带有批处理的数组或定义数据生成器。 - 使用带有 api 的 bcolz 是否
fit()
比使用带有 的数据生成器有性能改进fit_generator()
?
最后,有一个 fastai 帖子在这个帖子中提到了 dask
- dask 比 bcolz 好吗?
谢谢!
python - 安装 Python Blosc 的链接错误
我安装了 C-Blosc 库没问题,但是当我尝试安装 python-blosc 并到达时python setup.py build_ext --inplace --blosc="C:\\Program Files (x86)\\blosc"
出现链接错误。这是怎么回事?
我有 Windows 7,并试图从这里https://github.com/Blosc在 MSVC 2015 中安装 Python Blosc 。