问题标签 [blaze]
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.
mongodb - 如何使用 Blaze 按日期查询 mongo 后端?
我正在尝试使用 mongodb 后端的 Blaze,使用 github torrent 作为数据源。
我已经设置了隧道并且可以通过 ssh 隧道访问数据库
现在我正在尝试弄清楚如何根据日期进行查询。
虽然我知道 pymongo 查询显示我有超过 5000 条记录。一个区别是 pymongo 需要 isoformat 的日期时间,因此需要一个字符串。
以下 blaze 查询返回正确的记录:
我还尝试使用 isoformat() 作为 datetime 导致此查询:({'$match': {u'created_at': {'$gt': Timestamp('2015-10-06 00:00:00')}}},)
但与它匹配的文档的相同空结果。
我究竟做错了什么?
python - 选择一个框架用于使用 python 进行大于内存的数据分析
我正在解决一个大于内存的数据集的问题。原始数据集是一个 .csv 文件。其中一列是来自 musicbrainz 服务的曲目 ID。
我已经做了什么
我用dask读取 .csv 文件并将其转换为磁盘上的castra格式以获得更高的性能。我还使用peewee查询了 musicbrainz API 并填充了一个 sqlite 数据库,并得到了一些相关的结果。我选择使用数据库而不是另一个 dask.dataframe,因为这个过程需要几天时间,而且我不想在任何失败的情况下丢失数据。
我还没有开始真正分析数据。在重新排列数据的过程中,我设法弄得一团糟。
当前的问题
我很难将 SQL DB 中的列连接到 dask / castra 数据框。实际上,我不确定这是否可行。
替代方法
似乎我在为任务选择最佳工具时犯了一些错误。Castra 可能还不够成熟,我认为这是问题的一部分。此外,最好选择 SQLAlchemy 来支持 peewee,因为它被 pandas 使用,而 peewee 没有。
Blaze + HDF5 可能作为 dask + castra 的良好替代品,主要是因为 HDF5 比 castra 更稳定/成熟/完整,并且 blaze 在数据存储方面不太固执己见。例如,它可以简化 SQL DB 到主数据集的连接。
另一方面,我熟悉 pandas 并且 dask 公开了“相同”的 API。使用 dask 我也获得了并行性。
TL;博士
我有一个大于内存数据集 + sqlite 数据库,我需要加入到主数据集中。我怀疑是否使用 dask + castra (不知道 dask.dataframe 的其他相关数据存储),并使用 SQLAlchemy 一次将部分 SQL DB 加载到带有 pandas 的数据框中。我看到的最好的选择是改用 blaze + HDF5。在这种情况下,您有什么建议?
欢迎任何其他选项/意见。我希望这对 SO 来说足够具体。
python-2.7 - 无法在 Python 中使用 Pandas 或 Blaze 加载大文件(~2gb)
我有一个超过 500 万行和 20 个字段的文件。我想在 Pandas 中打开它,但出现内存不足错误:
然后,我阅读了一些关于类似问题的帖子并发现了 Blaze,但遵循三种方法(.Data、.CSV、.Table),显然没有一个有效。
输出:
python - Blaza 和 Pandas 的大数据
我想知道这种方法对于一个项目来说是否过大。我有一个 4gb 的文件,显然我的电脑无法处理。使用 Blaze 将文件拆分为更易于管理的文件大小并使用 pandas 打开并使用 Bokeh 进行可视化会不会过大?
我知道 Pandas 有一个“块”功能,但我想拆分它们的原因是因为我需要分析与特定名称相关的特定行。
有没有一种不同的方法不会让我的笔记本电脑崩溃并且不需要设置 Hadoop 或任何 AWS 服务?
python - 使用odo将数据迁移到SQL
我有一个 3 GB 的大型 CSV 文件,我想使用 Blaze 来调查数据,选择我感兴趣的分析数据,最终目标是将这些数据迁移到合适的计算后端,例如 SQlite , PostgresSQL 等。我可以将这些数据放入 Blaze 并正常工作,但这是我遇到问题的部分:
我不确定如何正确创建要使用 sqlite 打开的 db 文件。
python - 如何为带有 sqlite 后端的 python blaze 提供用户定义的函数?
我使用一切正常连接到 Blaze 中的 sqlite 数据库,
df = bz.Data("sqlite:///<mydatabase>)
但我不知道如何在与 df 的交互中提供用户定义的函数。我在 df 中有一个名为 IP 的列,它是包含 IP 地址的文本。我还有一个 toSubnet (x, y) 函数,它以文本格式接收 IP 地址 (x) 并返回其 /y 子网。例如:
现在,如果我想将所有 IP 映射到它们的 /14 子网,我使用:
当后端是 CSV 时有效。但是有了 sqlite 后端,我得到了NotImplementedError
. 这里有什么问题?
postgresql - 使用 Blaze/Pandas 高效存储 UNICODE 文本
我有大约 500 万行(并且还在增长)的 twitter 提要,我想有效地存储它们,以便使用 Pandas(最好是Blaze)进行更快的读/写访问。从一条推文的巨大元数据中,我只是存储[username, tweet time, tweet & tweet ID]
. 所以不多。此外,所有推文都经过unicode
编码。现在存储这些数据的最佳方式是什么?我目前将它们存储在一堆 CSV 中,但随着数据的增长,我认为它不是一个可行的解决方案,因此计划转移到数据库。我首先想到了 HDF5,但它仍然存在存储 unicoded 列的问题(即使在 Python 3 中)。
由于 Blaze 对数据库有很好的支持(我认为对分析也很有用),我是否知道什么是解决我的问题的好的架构解决方案(如果可能的话,在生产级别)?由于我的数据也是结构化的,我觉得不需要 NoSQL 解决方案,但愿意接受建议。
目前,这 5 MM 行只占用大约 1 GB 的空间,我认为它不会超过几十 GB。那么,使用Postgres
, 是最好的主意吗?
谢谢
postgresql - 使用 Blaze 的 Odo 添加到数据库时忽略重复行
如何在使用 Blaze 的Odo将数据帧存储在 postgres 数据库中时忽略重复的行?
例如,我像这样存储前 3 行:
my_table
有一个列ID作为主键。如果我添加了更多,但这次包括前最后一行,我想跳过该行并添加其他行而不是获取该行IntegrityError
。
我怎样才能做到这一点?如果数据库有数百万行,从数据库加载ID
值并检查重复项对我来说似乎很昂贵。有没有更好的选择?像这样的东西:
Blaze:0.8.3,Postgres:9.4.4,Psycopg2:2.6.1
postgresql - 使用 Blaze 打开时如何关闭数据库会话
在文档中提到了如何使用 Blaze 的Data打开与数据库的连接。
我确实像上面那样,然后当我尝试在该数据库上执行任何更新操作(如drop table)并随后通过Psycopg2打开会话时收到以下消息。
当我正在处理我用 Psycopg2 打开的会话时,我怀疑这种行为是由于 Blaze。(请纠正,如果我错了)。
例如,我如何在完成后关闭此 Blaze 会话或连接,以便我可以使用 Psycopg2 做其他事情?
python - 使用 pandas 将数据从 postgres 复制到 ZODB - read_csv 或 read_sql 或 blaze?
我正在创建一个使用 ZODB 的新应用程序,我需要主要从 postgres 数据库以及一些 csv 文件导入遗留数据。需要对数据进行有限数量的操作(用于合并链接表和创建属性、更改某些属性的名称、处理空列等的 sql 连接)。
使用 postgres 数据的子集,我将所有相关表的 csv 文件转储,将它们读入 pandas 数据帧并进行操作。这可行,但存在错误,部分原因是首先将数据传输到 csv 中。
我现在想加载所有数据(并消除错误)。我想知道直接连接到数据库并使用 read_sql 或继续使用 csv 文件是否有意义。
最大的表(csv 文件)只有 8MB,所以我希望不会有内存问题。大多数错误与编码和/或分隔符的选择有关(数据包含 |,;,: 和 ')。
有什么建议吗?我也读过一个叫做 Blaze 的东西,想知道我是否真的应该使用它。