-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何设置清洗后的数据不包含"__dj__stats__"字段? #102
Comments
你好,感谢你的关注与使用! 目前Data-Juicer的确在导出处理结果数据集时,会将中间计算得到的stats信息一起导出,这的确有可能导致数据集在后续使用时出现您提到的问题,目前对你来说一个暂时的快速的解决方法为对每个处理后的数据集进行一下额外处理: from datasets import load_dataset
from data_juicer.utils.constants import Fields
ds = load_dataset(...) # load the result dataset
ds = ds.remove_columns(Fields.stats) # remove this extra stats field
# export to the expected format
ds.to_jsonl(...)
# or
ds.to_parquet(...)
... 你可以尝试一下这个暂时方案能否解决你的问题? 此外,后续我们会针对这种场景添加一个额外参数来供用户选择是否在结果数据集中保留这些处理过程中额外添加的字段,并且会对相关的需求的场景做一些优化,但这个会花费一些开发的时间,我们会在这部分改进完成后告知你,感谢你的提议~ |
感谢非常及时的回复和解答!ds.remove_columns(Fields.stats)确实是一个有效的解决办法,给其他朋友们的参考:如果有固定需求的话,可以将ds_new = ds.remove_columns(Fields.stats)添加到Exporter._export_impl()的export_method()操作之前,然后对ds_new进行export_method()操作。 |
Hi @ZhouqyCH 我们再上面提到的那个PR中添加了两个新参数 |
Before Asking 在提问之前
I have read the README carefully. 我已经仔细阅读了 README 上的操作指引。
I have pulled the latest code of main branch to run again and the problem still existed. 我已经拉取了主分支上最新的代码,重新运行之后,问题仍不能解决。
Search before asking 先搜索,再提问
Question
在使用中发现清洗后的数据中不仅包含原有数据的字段,还新增了"dj__stats"字段,里面包括一系列与清洗时的算子相关的属性值。这确实方便了我们了解数据在清洗过程中为何被保留下来。
现在我想要进行多个阶段的数据清洗,例如第一阶段在数据集内进行清洗,第二阶段在数据集间进行清洗。针对这种多阶段的设计,当我想要基于预处理后的数据再次做预处理时,会报错:
看起来似乎是"dj__stats"字段的格式引起的问题。
我没有找到如何设置清洗后的数据不包含"dj__stats"字段,看源代码似乎是一个默认包含"dj__stats"字段的设计?
Additional 额外信息
No response
The text was updated successfully, but these errors were encountered: