对于 pandas(和 spark),有一个很好的通用方法可以完全控制数据的读取方式,即通过 BatchKwargs 指定一个已经可用的数据帧。
因此,在您的情况下,您可以执行以下操作:
my_dataset = pd.read_pickle(filename)
batch_kwargs = {"dataset": my_dataset}
batch = context.get_batch("my_datasource/in_memory_generator/my_dataset", "warning", batch_kwargs)
注意:这适用于 0.8.x 系列 API,并假定数据上下文配置如下:
datasources:
my_datasource:
class_name: PandasDatasource
...
generators:
in_memory_generator:
class_name: InMemoryGenerator
PS-这个目的是存在的首要原因InMemoryGenerator
。
编辑
在 Great Expectations >= 0.9.0 中,get_batch 的 API 已被简化,因此在这种情况下您将不再需要生成器,并且数据源名称在batch kwargs 中指定。类似的代码片段如下所示:
context = DataContext()
my_dataset = pd.read_pickle(filename)
batch_kwargs = {"datasource": "my_datasource", "dataset": my_dataset}
batch = context.get_batch(batch_kwargs=batch_kwargs, expectation_suite_name="warning")
(并且不需要发电机)