标签: duplicate-removal

如何使用SSIS从平面文件中删除重复的行?

首先我要说的是,能够从平面文件中获取1700万条记录,推送到远程盒子上的数据库并花费7分钟是令人惊讶的.SSIS真的太棒了.但是现在我有那些数据,如何删除重复数据?

更好的是,我想获取平面文件,从平面文件中删除重复项并将它们放回另一个平面文件中.

我在考虑:

Data Flow Task

  • 文件源(带有关联的文件连接)
  • 一个for循环容器
  • 一个脚本容器,包含一些逻辑来判断是否存在另一行

亲爱的,这个网站上的每个人都非常了解.

Update: 我找到了这个链接,可能有助于回答这个问题

sql-server ssis duplicates duplicate-removal business-intelligence

6
推荐指数
3
解决办法
3万
查看次数

MySQL:在不破坏外键约束的情况下消除重复行

我有一个填充了规范化地址的客户数据库.有重复.

每个用户都创建了自己的记录,并输入了自己的地址.因此,我们在用户和地址之间建立了一对一的关系:

CREATE TABLE `users` (
  `UserID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(63),
  `Email` VARCHAR(63),
  `AddressID` INT UNSIGNED,
  PRIMARY KEY (`UserID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `addresses` (
  `AddressID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Duplicate` VARCHAR(1),
  `Address1` VARCHAR(63) DEFAULT NULL,
  `Address2` VARCHAR(63) DEFAULT NULL,
  `City` VARCHAR(63) DEFAULT NULL,
  `State` VARCHAR(2) DEFAULT NULL,
  `ZIP` VARCHAR(10) DEFAULT NULL,
  PRIMARY KEY (`AddressID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;  
Run Code Online (Sandbox Code Playgroud)

而数据:

INSERT INTO `users` VALUES
    (1,  'Michael', 'michael@email.com', 1),
    (2,  'Steve',   'steve@email.com',   2), …
Run Code Online (Sandbox Code Playgroud)

php mysql sql normalization duplicate-removal

6
推荐指数
1
解决办法
1106
查看次数

如何在保留区分大小写的同时消除Python中的重复列表条目?

我正在寻找一种方法从Python列表中删除重复的条目,但有一个扭曲; 最终列表必须区分大小写,并且首选大写单词.

例如,我cup和之间Cup只需要保持Cup而不是cup.与其他建议lower()首先使用的常见解决方案不同,我更喜欢在这里维护字符串的情况,特别是我更喜欢将大写字母保留在小写的字母上.

我再次尝试将此列表转为: [Hello, hello, world, world, poland, Poland]

进入这个:

[Hello, world, Poland]

我该怎么办?

提前致谢.

python list case-sensitive duplicates duplicate-removal

6
推荐指数
2
解决办法
1688
查看次数

从列表中删除重复值的最佳算法

从列表中删除重复值的最佳算法是什么?我试过这个:

for (int i = 0; i < AuthorCounter-1; i++)
{
    for (int j = 0; j < AuthorCounter-1; j++)
    {
        if (i != j)
        {
            if (AuthorGroupNode.Nodes[i].Text == AuthorGroupNode.Nodes[j].Text)
            {
                AuthorGroupNode.Nodes[j].Remove();
                AuthorCounter--;
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

AuthorGroupNodes是节点上的列表.它在某种程度上做得对,但并不完美.谁有更好的解决方案???

c# algorithm list duplicate-removal

5
推荐指数
1
解决办法
3050
查看次数

Postgresql批量插入或忽略

我有责任将代码从sqlite切换到postgres.我遇到问题的其中一个查询将在下面复制.

INSERT INTO group_phones(group_id, phone_name)
SELECT g.id, p.name 
FROM phones AS p, groups as g
WHERE g.id IN ($add_groups) AND p.name IN ($phones);
Run Code Online (Sandbox Code Playgroud)

当存在重复记录时会出现问题.在此表中,两个值的组合必须是唯一的.我在其他地方使用了一些plpgsql函数来执行更新或插入操作,但在这种情况下,我可以一次执行多个插入操作.我不知道如何为此编写存储例程.感谢所有sql大师的帮助!

sql postgresql plpgsql duplicate-removal postgresql-9.1

5
推荐指数
1
解决办法
2423
查看次数

`level`上的`setattr`保留不需要的重复项(R data.table)

关键问题:使用setattr更改级别名称,保留不需要的重复项.

我正在清理一些数据,其中我有sevearl因子水平,所有这些都是相同的,显示为两个或更多不同的水平.(此错误主要是由于拼写错误和文件编码问题)我有153K因素,需要更正5%.

在以下示例中,向量具有三个级别,其中两个级别需要折叠为一个级别.

  incorrect <- factor(c("AOB", "QTX", "A_B"))   # this is how the data were entered
  correct   <- factor(c("AOB", "QTX", "AOB"))   # this is how the data *should* be

  > incorrect
  [1] AOB QTX A_B
  Levels: A_B AOB QTX   <~~ Note that "A_B" should be "AOB"

  > correct
  [1] AOB QTX AOB
  Levels: AOB QTX
Run Code Online (Sandbox Code Playgroud)

向量是a的一部分data.table.
使用该levels<-功能更改级别名称时,一切正常.
但是,如果使用setattr,则会保留不需要的重复项.

mydt1 <- data.table(id=1:3, incorrect, key="id")
mydt2 <- data.table(id=1:3, incorrect, key="id")



# assigning levels, …
Run Code Online (Sandbox Code Playgroud)

r duplicate-removal data.table

5
推荐指数
1
解决办法
699
查看次数

PHP如何从数组中删除元素 - array_uniqe将无法正常工作

我有PHP数组,我有从这个数组中删除一些元素的问题.它看起来像这样:

Array
(
    [0] => 2x 633130A
    [1] => 2x 525130B
    [2] => 2x 591130B
    [3] => 2x 963130B
    [4] => 2x 813130B (20mm)
    [5] => 2x 813130B
    [6] => 2x 313130B (12mm)
    [7] => 2x 313130B
    [8] => 4x 413130B
    [9] => 2x 633130B
    [12] => 2x 381130A (23mm)
    [13] => 2x 381130A
)
Run Code Online (Sandbox Code Playgroud)

现在我想删除没有mm参数的重复元素,如下所示:

    FROM                =====>              TO          

Array                                   Array
(                                       (
    [0] => 2x 633130A                   [0] => 2x 633130A       
    [1] => 2x 525130B                   [1] => 2x …
Run Code Online (Sandbox Code Playgroud)

php arrays duplicate-removal

5
推荐指数
1
解决办法
137
查看次数

用仅比较纯图像数据和图像相似性进行重复照片搜索?

在13年中收集了大约600GB的照片-现在存储在freebsd zfs / server中。

照片来自家庭计算机,从几个部分备份到不同的外部USB HDD,从磁盘灾难中重建的图像,从不同的照片处理软件(iPhoto,Picassa,HP和许多其他软件:())在多个深层子目录中-不久= TERRIBLE MESS包含许多重复。

因此,我首先要做的是:

  • 在树中搜索相同大小的文件(快速),并对其进行md5校验和。
  • 收集重复的图像(相同大小+相同的md5 =重复)

这很有帮助,但是这里仍然有很多重复项:

  • 照片仅与某些照片管理软件添加的exif / iptc数据有所不同,但是图像是相同的(或至少“看起来相同”并且具有相同的尺寸)
  • 或者它们只是原始图像的调整大小版本
  • 或者它们是原稿的“增强”版本等。

现在的问题:

  • 如何在没有exif / IPTC和类似元信息的情况下,通过只在JPG中校验“纯图像字节” 来查找重复项?因此,要过滤出重复的照片,只有exif标签有什么不同,但是图像是相同的。(因此文件校验和不起作用,但是图像校验和可以...)。(我希望)这不是很复杂-但需要一些指导。
  • 哪个perl模块可以从JPG文件中提取“纯”图像数据,什么可用于比较/校验和

更复杂

  • 如何找到“相似”的图像,只有
    • 调整尺寸的原件
    • 原稿的“经过修饰”的版本(来自某些照片处理程序)
  • 在这里,Unix命令格式或perl模块(XS?)中是否已有可用的算法,我可以用来检测这些特殊的“重复项”?

我可以使复杂的脚本是BASH和“ +-” :)知道perl。。可以直接在服务器上使用FreeBSD / Linux实用程序,并且可以通过网络使用OS X(但是通过LAN使用600GB并不是最快的方法)...

我的粗略想法:

  • 仅在工作流程结束时删除图像
  • use Image::ExifTool 脚本,用于根据图像创建日期和相机型号(可能也是其他exif数据)收集重复的图像数据。
  • 进行纯图像数据的校验和(或提取直方图-同一图像应具有相同的直方图)-对此不确定
  • 使用一些相似性检测来基于调整大小和照片增强功能查找重复项-不知道该怎么办...

任何想法,帮助,任何(软件/算法)提示如何使混乱局面?

附:

这几乎是一个相同的问题:查找重复的图像文件,但答案(md5)已经完成。并寻找更精确的校验和和图像比较算法。

bash perl image image-processing duplicate-removal

5
推荐指数
1
解决办法
2196
查看次数

如果条目少于x次,则删除数据框中的行

我有以下数据框,称之为df,这是一个由三个向量组成的数据框:"Name","Age"和"ZipCode".

df=      
  Name Age ZipCode
1  Joe  16   60559
2  Jim  20   60637
3  Bob  64   94127
4  Joe  23   94122
5  Bob  45   25462
Run Code Online (Sandbox Code Playgroud)

我希望删除整个行,df如果Name它在整个数据框中出现少于2次(并且灵活地为3倍,4倍或x倍).基本上保持BobJoe在数据帧,但删除Jim.我怎样才能做到这一点?

我试着把它变成一张桌子:

> table(df$Name)

Bob Jim Joe 
 2   1   2 
Run Code Online (Sandbox Code Playgroud)

但我不知道从那里去哪里.

r duplicate-removal delete-row dataframe

5
推荐指数
1
解决办法
1078
查看次数

删除重复的ArrayList自定义对象

我有一个ArrayList,它包含一个类的元素Event.Event有两个属性,NameTimestamp.该列表现在显示所有事件.我想删除具有相同名称但不同时间戳的重复项,并将它们放在另一个列表中.这样,用户可以单击具有该名称的事件,然后选择日期.

我已经在我的应用程序中覆盖了函数equals(比较名称和时间戳)以及其他一些功能.

我怎么解决这个问题?

java arraylist duplicate-removal

5
推荐指数
1
解决办法
1万
查看次数