CoreClaw
商店
定价
开始免费试用
Kael Odin

数据集合并和去重工具

定价
Try for free
Kael Odin

数据集合并和去重工具

odin-kael/dataset-deduplication-and-merge-tool

数据集去重采集器是一款功能强大的工具,用于合并多个 JSON/JSONL 文件中的数据集并进行数据去重。该工具针对 CafeScraper 平台完成全面优化,附加增强功能,并具备完善的异常处理机制。

免费试用

Dedup Datasets Worker 是企业级数据集合并和去重工具,支持从多种数据源加载数据并基于字段组合去重。针对 CoreClaw 平台全面优化。

✨ 核心特性

特性说明
📦多源合并从直接输入、URL 或 Core Dataset 加载并合并数据
🎯复合键去重基于多字段组合去重(如 productId + sku)
🔄双处理模式先加载后去重(保持顺序)或 边加载边去重(流式处理)
🔧自定义转换去重前/后的 JavaScript 转换函数
🚀自动格式检测根据文件扩展名自动检测 JSON/JSONL 格式
🌐代理支持内置 CoreClaw 云环境代理配置
💾状态持久化自动保存处理状态,支持中断恢复
🔍重复项检测单独查找并输出重复项

🚀 快速开始

bash
npm install
npm start

📋 输入参数

平台兼容说明

CoreClaw 要求 b 字段必须绑定到 array 类型参数。这个 worker 当前将 b 绑定到内部占位字段 runUnits,以确保平台 UI 能稳定加载,同时避免按业务字段错误拆分去重任务。

  • 发布到 CoreClaw 时不要移除 runUnits
  • runUnits 仅用于平台兼容,不参与业务去重逻辑
  • 实际用于去重的仍然是 fields

必填参数

参数类型说明
fieldsarray用于去重的字段列表(如 ["productId", "sku"])

数据来源参数(三选一)

参数类型说明
dataSourceTypestring数据来源类型:"direct-input"、"network-url" 或 "core-dataset"
inputDatastringJSON 数组数据(当 dataSourceType="direct-input" 时)
inputUrlsarray数据文件 URL 列表(当 dataSourceType="network-url" 时)
datasetIdsarrayCore Dataset ID 列表(当 dataSourceType="core-dataset" 时)

可选参数

参数类型默认值说明
inputFormatstring"json"文件格式:json 或 jsonl(根据扩展名自动检测)
outputstring"unique-items"输出类型:unique-items、duplicate-items 或 nothing
modestring"dedup-after-load"处理模式
fieldsToLoadarray[]仅加载指定字段以节省内存
preDedupTransformFunctionstring""去重前的数据转换函数
postDedupTransformFunctionstring""去重后的数据转换函数
customInputDatastring""传递给转换函数的自定义数据对象(JSON格式)
nullAsUniquebooleanfalse将 null/undefined 值视为唯一值
parallelLoadsinteger10并行加载文件数 (1-100)
parallelPushesinteger5并行推送数据数 (1-50)
batchSizeinteger5000批处理大小 (100-50000)
appendFileSourcebooleanfalse添加 __fileSource__ 字段记录文件来源
verboseLogbooleanfalse启用详细日志

💡 使用示例

示例 1: 电商产品去重(复合键)

按 productId + sku 组合去重 — 同一产品不同 SKU 保留为唯一项。

json
{
  "dataSourceType": "direct-input",
  "inputData": "[{"productId":"SKU-1001","sku":"A-BLACK","name":"Wireless Earbuds Pro","price":79.99,"category":"Electronics","rating":4.8},{"productId":"SKU-1001","sku":"A-WHITE","name":"Wireless Earbuds Pro","price":79.99,"category":"Electronics","rating":4.8},{"productId":"SKU-1001","sku":"A-BLACK","name":"Wireless Earbuds Pro (重复)","price":69.99,"category":"Electronics","rating":4.5}]",
  "fields": ["productId", "sku"]
}

结果: 2个唯一项 — 第三条(相同 productId+sku)被去重。

示例 2: 多源合并 + 转换管道

从多个 URL 合并产品目录,去重前过滤无效数据,去重后添加元数据。

json
{
  "dataSourceType": "network-url",
  "inputUrls": [
    { "url": "https://api.example.com/catalog/electronics.json" },
    { "url": "https://api.example.com/catalog/wearables.json" },
    { "url": "https://api.example.com/catalog/audio.jsonl" }
  ],
  "inputFormat": "json",
  "fields": ["productId", "sku"],
  "preDedupTransformFunction": "async (items, customData) => {
  return items
    .filter(item => item.price >= customData.minPrice && item.stock > 0)
    .map(item => ({...item, price: Math.round(item.price * 100) / 100}));
}",
  "postDedupTransformFunction": "async (items) => {
  const ts = new Date().toISOString();
  return items.map(item => ({...item, mergedAt: ts, source: 'catalog-merge'}));
}",
  "customInputData": "{"minPrice": 10}",
  "appendFileSource": true,
  "verboseLog": true
}

管道: 加载3源 → 按 minPrice&stock 过滤 → 价格取整 → 按 productId+sku 去重 → 添加 mergedAt 时间戳 → 输出

示例 3: Core Dataset 跨源去重

跨多个 Core Dataset 去重,找出唯一条目。

json
{
  "dataSourceType": "core-dataset",
  "datasetIds": ["ds-product-crawl-a", "ds-product-crawl-b", "ds-supplier-feed"],
  "fields": ["productId", "sku"],
  "mode": "dedup-as-loading",
  "batchSize": 10000,
  "fieldsToLoad": ["productId", "sku", "name", "price", "stock"],
  "appendFileSource": true
}

示例 4: 大规模流式去重(>10万条)

json
{
  "dataSourceType": "network-url",
  "inputUrls": [{ "url": "https://data.example.com/full-catalog.jsonl" }],
  "inputFormat": "jsonl",
  "fields": ["productId", "sku"],
  "mode": "dedup-as-loading",
  "batchSize": 10000,
  "fieldsToLoad": ["productId", "sku", "name", "price"],
  "verboseLog": true
}

示例 5: 重复项检测与分析

查找所有重复条目,用于数据质量审计。

json
{
  "dataSourceType": "direct-input",
  "inputData": "[{"productId":"SKU-1001","sku":"A-BLACK","name":"Earbuds"},{"productId":"SKU-1001","sku":"A-BLACK","name":"Earbuds Pro"},{"productId":"SKU-1002","sku":"B-WHITE","name":"Watch"}]",
  "fields": ["productId", "sku"],
  "output": "duplicate-items"
}

结果: 1个重复项(第二个 SKU-1001/A-BLACK 条目)

📊 性能指南

数据量推荐模式内存速度
< 1万条先加载后去重低快
1万-10万条先加载后去重中快
10万-100万条边加载边去重低中
> 100万条边加载边去重低慢

🔧 优化技巧

  1. 仅加载必要字段: 使用 fieldsToLoad 参数
  2. 使用 JSONL 格式: 比 JSON 更省内存
  3. 调整批次大小: 根据内存情况调整 batchSize
  4. 开启并行加载: 增加 parallelLoads 加快处理
  5. 文件格式自动检测: Worker 会根据 .jsonl 扩展名自动识别格式

🐛 故障排查

问题解决方案
JavaScript heap out of memory切换到 边加载边去重 模式,减小 batchSize,使用 fieldsToLoad,使用 JSONL 格式
所有项都被判定为唯一检查字段名是否正确,启用 verboseLog: true,确认数据中包含该字段

定价

失败结果不计费

用户评分

5.0

开发者

Kael Odin

Worker 数据

15次 累计运行
成功率:86.67%
最后更新时间:2026.04.20

分类

Google

分享

你可能也喜欢

探索商店中更多热门采集工具

查看全部采集工具
谷歌搜索结果(SERP)抓取API

谷歌搜索结果(SERP)抓取API

by CoreClaw

通过关键词请求, 返回结构化的搜索结果摘要,包括最终搜索参数、自然结果、相关搜索以及 People Also Ask 数据。

4.8
604 次运行
低至 $1.2/1,000 结果
Google Sheets 导入导出工具

Google Sheets 导入导出工具

by Kael Odin

一款功能强大的 Google Sheets 数据导入导出工具,专用于实现 Google Sheets 与外部系统的数据同步、备份和集成。支持三种操作模式、两种认证方式、批量处理、数据去重、自动备份等功能。

5.0
2 次运行
低至 $1.2/1,000 结果
Cheerio网页抓取

Cheerio网页抓取

by Kael Odin

一款基于 Cheerio 的高速静态页面爬虫工具,专为静态 HTML 页面设计。使用 Cheerio 进行 HTML 解析,速度比完整浏览器渲染快 10-50 倍。

5.0
3 次运行
低至 $1.2/1,000 结果
Playwright 网页抓取

Playwright 网页抓取

by Kael Odin

一款使用 Playwright 进行完整浏览器渲染的强大跨浏览器网页爬虫工具。支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。完美适用于动态页面、单页应用(SPA)、无限滚动页面以及跨浏览器测试场景。

5.0
4 次运行
低至 $1.2/1,000 结果
查看全部采集工具
CoreClaw

通过开箱即用的 Worker,快速搭建您的数据采集工作流。

邮箱:support@coreclaw.com

资源中心

  • 快速开始
  • API 参考
  • 销售线索
  • 联盟计划

推荐

  • 商店
  • 定价

地址

頂點數創有限公司

香港九龍大角咀通州街111號雲之端1樓9室