我有一些pyarrow
拼花数据集正在编写代码。我想有一个集成测试,以确保文件被正确写入。我想通过将一个小示例数据块写入内存文件系统来实现这一点。然而,我正在努力为Python找到一个pyarrow
兼容的内存文件系统接口。你知道吗
您将在下面找到一段代码,其中包含一个filesystem
变量。我想用内存中的文件系统替换filesystem
变量,稍后我可以通过编程方式在集成测试中检查该文件系统。你知道吗
import pyarrow.parquet as pq
pq.write_to_dataset(
score_table,
root_path=AWS_ZEBRA_OUTPUT_S3_PREFIX,
filesystem=filesystem,
partition_cols=[
EQF_SNAPSHOT_YEAR_PARTITION,
EQF_SNAPSHOT_MONTH_PARTITION,
EQF_SNAPSHOT_DAY_PARTITION,
ZEBRA_COMPUTATION_TIMESTAMP
]
)
最后,我手动实现了
pyarrow.FileSystem
ABC的一个实例。似乎使用mock
进行测试是失败的,因为pyarrow
(不是以最Pythonic的方式)检查传递给write_to_dataset
:https://github.com/apache/arrow/blob/5e201fed061f2a95e66889fa527ae8ef547e9618/python/pyarrow/filesystem.py#L383的filesystem
参数的类型。我建议将此方法中的逻辑更改为不显式检查类型(甚至isinstance
也更好!)以便于测试。你知道吗如果
filesystem
是None
,则可以将内存中的文件对象传递给write_to_dataset
。你知道吗所以你的电话可能会变成:
pyarrow来源的相关行:
https://github.com/apache/arrow/blob/207b3507be82e92ebf29ec7d6d3b0bb86091c09a/python/pyarrow/filesystem.py#L402-L411
相关问题 更多 >
编程相关推荐