資料 文字去重

2021-08-28 22:57:18 字數 2160 閱讀 7448

#先排序,後取重

sort file.txt | uniq

#!/usr/bin/python

#coding:utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

def text_duplicate_byset(sourcepath, destpath):

sum = 0

sum_pre = 0

addrs = set()

with open(sourcepath, 'r') as scan_file:

for line in scan_file.readlines():

sum_pre += 1

# addr = get_addr(line)

# line.decode('utf8')

addrs.add(line)

scan_file.close()

with open(destpath, 'w') as infile:

while len(addrs) > 0:

sum += 1

infile.write(addrs.pop())

infile.close()

#print(addrs)

print(u"去重之前文字條數: "+str(sum_pre))

print(u"去重之後文字條數: "+str(sum))

return sum_pre,sum

#example

sourcepath = 'log.txt'

destpath = 'log_du.txt'

text_duplicate_bylist(sourcepath,destpath)

input&&output

#input:

你好你好

你好你好

你好你好

#output:

你好你好

#!/usr/bin/python

#coding:utf-8

#row代表以某一列為基準去重,預設為第1列

def text_duplicate_bylist(sourcepath, destpath, row = 0):

sum = 0

sum_pre = 0

addrs = {}

with open(sourcepath, 'r') as scan_file:

for line in scan_file.readlines():

line = line.split('\t')

sum_pre += 1

if len(line) < 2 :

continue

addrs[line[row]] = '\t'.join(line[row + 1:])

scan_file.close()

with open(destpath, 'w') as infile:

for key in addrs.keys():

tmp_str = addrs[key]

#while len(addrs) > 0:

sum += 1

infile.write(key + '\t' + tmp_str)

infile.close()

#print(addrs)

print(u"去重之前文字條數: "+str(sum_pre))

print(u"去重之後文字條數: "+str(sum))

return sum_pre,sum

#example

sourcepath = 'log.txt'

destpath = 'log_du.txt'

text_duplicate_bylist(sourcepath,destpath)

input&&output

#input,各列以 \t 分隔

你好你好 one

你好你好 one

你好你好 one

你好你好啊 one

#output:

你好你好 one

你好你好啊 one

finger print 文字去重

任何一段資訊文字,都可以對應乙個不太長的隨機數,作為區別它和其它資訊的指紋 fingerprint 只要演算法設計的好,任何兩段資訊的指紋都很難重複,就如同人類的指紋一樣。資訊指紋在加密 資訊壓縮和處理中有著廣泛的應用。string content2 卓爾防線繼續傷筋動骨 隊長梅方出場再補漏說起來卓...

文字如何去重?uniq awk

對於awk a 3 需要了解3個知識點 1 awk陣列知識,不說了 2 awk的基本命令格式 awk pattern 省略action時,預設action是,如awk 1 就是awk 1 3 var 的形式 先讀取var變數值,再對var值 1 以資料1 2 3 1 2 3 1 2 4 1 2 5 ...

hive 列表去重 Hive 資料去重

實現資料去重有兩種方式 distinct 和 group by 1.distinct消除重複行 distinct支援單列 多列的去重方式。單列去重的方式簡明易懂,即相同值只保留1個。多列的去重則是根據指定的去重的列資訊來進行,即只有所有指定的列資訊都相同,才會被認為是重複的資訊。1 作用於單列 se...