我如何确保在查询分区数据框时读取不必要的文件的dask?
例如,说我在目录树中有一个镶木quet数据集,hive style:
dataset/field1=A/field2=X/data.parquet
dataset/field1=A/field2=Y/data.parquet
dataset/field1=B/field2=X/data.parquet
dataset/field1=B/field2=Y/data.parquet
并说我定义了这样的dask dataframe:
import dask.dataframe as dd
df = dd.read_parquet("dataset/", engine="pyarrow")
here,field1
and field2 是分区列在我的数据框中。
我的问题:如果我执行df.query(“ field1 =='a'an and field2 =='x'”)
,我该如何确保Dask仅读取一个Parquet文件? (即,仅读取dataset/field1 = a/field2 = x/data.parquet
)
是否有一种方法可以知道哪些文件dask正在打开和读取?也许是从记录仪中?
For example, say I have a parquet dataset in a directory tree, hive-style:
dataset/field1=A/field2=X/data.parquet
dataset/field1=A/field2=Y/data.parquet
dataset/field1=B/field2=X/data.parquet
dataset/field1=B/field2=Y/data.parquet
And say I define a dask dataframe like this:
import dask.dataframe as dd
df = dd.read_parquet("dataset/", engine="pyarrow")
Here, field1
and field2
are partition columns in my dataframe.
My question: how do I make sure dask only reads one parquet file if I do df.query("field1 == 'A' and field2 == 'X'")
? (i.e., only read dataset/field1=A/field2=X/data.parquet
)
Relatedly, is there a way of knowing which files dask is opening and reading? Maybe from a logger?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此功能由
pyarrow
在阅读时间使用过滤器时(不是.Query
方法):编辑:上面的片段与
dask = 2022.1.0 <一起使用。 /code>,但不是
dask = 2022.6.1
,有关详细信息检查这个GH问题。This functionality is supported by
pyarrow
when using filters at read time (not as.query
method):Edit: the snippet above works with
dask=2022.1.0
, but notdask=2022.6.1
, for details check this GH issue.