问题标签 [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.

0 投票
0 回答
657 浏览

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')}}},)但与它匹配的文档的相同空结果。

我究竟做错了什么?

0 投票
1 回答
1497 浏览

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 来说足够具体。

0 投票
1 回答
1638 浏览

python-2.7 - 无法在 Python 中使用 Pandas 或 Blaze 加载大文件(~2gb)

我有一个超过 500 万行和 20 个字段的文件。我想在 Pandas 中打开它,但出现内存不足错误:

然后,我阅读了一些关于类似问题的帖子并发现了 Blaze,但遵循三种方法(.Data、.CSV、.Table),显然没有一个有效。

输出:

0 投票
1 回答
135 浏览

python - Blaza 和 Pandas 的大数据

我想知道这种方法对于一个项目来说是否过大。我有一个 4gb 的文件,显然我的电脑无法处理。使用 Blaze 将文件拆分为更易于管理的文件大小并使用 pandas 打开并使用 Bokeh 进行可视化会不会过大?

我知道 Pandas 有一个“块”功能,但我想拆分它们的原因是因为我需要分析与特定名称相关的特定行。

有没有一种不同的方法不会让我的笔记本电脑崩溃并且不需要设置 Hadoop 或任何 AWS 服务?

0 投票
1 回答
3755 浏览

python - 使用odo将数据迁移到SQL

我有一个 3 GB 的大型 CSV 文件,我想使用 Blaze 来调查数据,选择我感兴趣的分析数据,最终目标是将这些数据迁移到合适的计算后端,例如 SQlite , PostgresSQL 等。我可以将这些数据放入 Blaze 并正常工作,但这是我遇到问题的部分:

我不确定如何正确创建要使用 sqlite 打开的 db 文件。

0 投票
1 回答
460 浏览

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. 这里有什么问题?

0 投票
1 回答
54 浏览

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, 是最好的主意吗?

谢谢

0 投票
1 回答
463 浏览

postgresql - 使用 Blaze 的 Odo 添加到数据库时忽略重复行

如何在使用 Blaze 的Odo将数据帧存储在 postgres 数据库中时忽略重复的行?

例如,我像这样存储前 3 行:

my_table有一个列ID作为主键。如果我添加了更多,但这次包括前最后一行,我想跳过该行并添加其他行而不是获取该行IntegrityError

我怎样才能做到这一点?如果数据库有数百万行,从数据库加载ID值并检查重复项对我来说似乎很昂贵。有没有更好的选择?像这样的东西:

Blaze:0.8.3,Postgres:9.4.4,Psycopg2:2.6.1

0 投票
1 回答
111 浏览

postgresql - 使用 Blaze 打开时如何关闭数据库会话

文档中提到了如何使用 Blaze 的Data打开与数据库的连接。

我确实像上面那样,然后当我尝试在该数据库上执行任何更新操作(如drop table)并随后通过Psycopg2打开会话时收到以下消息。

当我正在处理我用 Psycopg2 打开的会话时,我怀疑这种行为是由于 Blaze。(请纠正,如果我错了)。

例如,我如何在完成后关闭此 Blaze 会话或连接,以便我可以使用 Psycopg2 做其他事情?

0 投票
1 回答
292 浏览

python - 使用 pandas 将数据从 postgres 复制到 ZODB - read_csv 或 read_sql 或 blaze?

我正在创建一个使用 ZODB 的新应用程序,我需要主要从 postgres 数据库以及一些 csv 文件导入遗留数据。需要对数据进行有限数量的操作(用于合并链接表和创建属性、更改某些属性的名称、处理空列等的 sql 连接)。

使用 postgres 数据的子集,我将所有相关表的 csv 文件转储,将它们读入 pandas 数据帧并进行操作。这可行,但存在错误,部分原因是首先将数据传输到 csv 中。

我现在想加载所有数据(并消除错误)。我想知道直接连接到数据库并使用 read_sql 或继续使用 csv 文件是否有意义。

最大的表(csv 文件)只有 8MB,所以我希望不会有内存问题。大多数错误与编码和/或分隔符的选择有关(数据包含 |,;,: 和 ')。

有什么建议吗?我也读过一个叫做 Blaze 的东西,想知道我是否真的应该使用它。