- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码片段:
HDFStore = pandas.io.pytables.HDFStore
lock = threading.RLock()
with lock:
store = HDFStore('my_datafile.hdf','r')
data_frame = store['my_series']
store.close()
return data_frame['my_column']
是为了响应Web请求而执行的,因此它可能同时在多个线程上执行。也有可能在调用 store.close 之前中断执行。
我以不可重现的方式遇到了一些麻烦(HDFStore 库中出现异常,或返回空数据)。
使该代码线程安全并确保文件在异常时正确关闭的正确方法是什么?
经过一些调查,我发现 HDFStore 对打开的文件有一个缓存机制......也许这可能是问题所在?
最佳答案
引用,参见pandas docs
并刚刚发布 PyTables 3.1 release notes
这应该适用于 PyTables 3.0.0。只要您不将文件写入其他任何地方(只要它已经存在)。
您也可以尝试这样做:
with get_store('my_datafile.hdf',mode='r') as store:
return store['my_series']
它会自动为你关闭它(我认为这并不是线程安全的,但也许如果你把它放在你的 with lock:
中,它就会是线程安全的。
如果您只是阅读,那么您根本不关心线程安全。 在任何情况下都不要尝试在多个线程(甚至进程)中写入。这会毁掉你的文件。
PyTables 3.1 刚刚发布,至少在较低的 HDF5 版本上更改了文件缓存机制,请查看您的版本:
import tables
tables.get_hdf_version()
我不知道这会对线程安全产生什么影响。
关于python - 使用 HDFStore 文件的线程和异常安全方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583113/
我将所有数据都放入了 HDFStore(是的!),但是如何从中取出数据.. 我在我的 HDFStore 中保存了 6 个数据帧作为 frame_table。这些表格中的每一个看起来如下所示,但长度各不
我确定这可能非常简单,但我无法弄清楚如何通过日期时间索引对 Pandas HDFStore 表进行切片以获得特定范围的行。 我有一个看起来像这样的表: mdstore = pd.HDFStore(st
我有一个 pandas HDFStore,我尝试从中进行选择。我想在一个大的 np.array 中选择两个时间戳之间的数据和一个 id。以下代码可以工作,但仅在查询列表中的成员身份时才会占用过多内存。
我对 pandas' HDFStore 有一些问题速度太慢了,不幸的是我无法从这里的其他问题中找到令人满意的解决方案。 情况 我有一个很大的 DataFrame,其中大部分包含 float ,有时包含
我对 pandas' HDFStore 有一些问题速度太慢了,不幸的是我无法从这里的其他问题中找到令人满意的解决方案。 情况 我有一个很大的 DataFrame,其中大部分包含 float ,有时包含
清楚我做错了什么吗? 我正在尝试 pandas HDFStore.select start 和 stop 选项,但没有什么区别。 我使用的命令是: import pandas as pd hdf =
我希望将我读入的两个表存储在数据框中。 我正在将 h5 文件读入我的代码中: with pd.HDFStore(directory_path) as store: self.df = stor
我在平面文件中有数 TB 的数据(在子集中),我想使用 Python Pandas/Pytables/H5py 将这些数据转换为 HDF5 以加快查询和搜索速度。我计划使用 to_hdf 之类的方法转
我有一个 pandas HDFStore,我试图从中进行选择。我想在一个大的 np.array 中选择两个带有 id 的时间戳之间的数据。以下代码有效,但仅在查询列表中的成员资格时占用过多内存。如果我
问题:如何创建一个允许对 pandas HDFStore 对象中的多个列进行迭代的生成器? 我正在尝试为 pandas HDFStore 对象创建一个包装类。我试图实现的功能之一是能够按给定的 blo
我在具有多索引的 HDFStore 中将frame_table 称为“数据”。在 DataFrame 中,它可能看起来像这样 var1 var2 va
以下代码片段: HDFStore = pandas.io.pytables.HDFStore lock = threading.RLock() with lock:
Pandas "Group By" Query on Large Data in HDFStore? 我已经尝试了答案中的示例,只是我希望能够按两列进行分组。 基本上,修改代码看起来像 with pd
我通过 Pandas 将大量数据帧导出到一系列 HDFStore 文件。我需要能够根据需要快速提取每个数据帧的最新记录。 设置: File path: /data/storage_X100.hdf
这很好用: cols = ['X', 'Y'] ind = [('A', 1), ('B', 2)] ind = pd.MultiIndex.from_tuples(index, names=['fo
假设我有一个 store = pd.HDFStore('cache/cache.h5') 我有一个存储的 DataFrame store['myDF'] 如果在我的代码中,我这样做: a = stor
我是 pytables 的新手,对存储压缩的 pandas DataFrame 有疑问。我当前的代码是: import pandas # HDF5 file name H5name="C:\\MyDi
我想知道为什么 HDFStore 会在 pandas 中的字符串列上发出警告。我认为它可能是我真实数据库中的 NaN,但在这里尝试它会给我两个列的警告,即使一个没有混合并且只是字符串。 使用 .13.
我正在试验不同的 pandas 友好存储方案来存储报价数据。迄今为止最快的(就读取和写入而言)是使用具有 blosc 压缩和“固定”格式的 HDFStore。 store = pd.HDFStore(
我有以下 DataFrame,它作为名为数据的 frame_table 存储在 HDFStore 对象中: shipmentid qty catid
我是一名优秀的程序员,十分优秀!