找common值的小脚本

=Start=

缘由:

在做分析的时候经常会遇到求交集的情况,如果数据都在Hive表里面,通过几个inner join就可以找出来;如果数据是以文件的形式存在的话,之前以为comm命令就可以满足,但是实测发现不是我想要的,而且只能支持2个文件,所以自己简单写一个脚本来实现在多个文件中找common值的功能,方便自己使用。

正文:

参考解答:

直接看代码吧,思路和内容都很简单:

#!/usr/bin/env python
# coding=utf-8
import sys

def main():
    result = set()
    with open(sys.argv[1]) as fp1:
        for line in fp1:
            result.add(line.strip())
        #
    #
    # print(len(result))

    for eachFile in sys.argv[2:]:
        set2 = set()
        with open(eachFile) as fp2:
            for line in fp2:
                set2.add(line.strip())
            #
        #
        result = result.intersection(set2)
        print(len(result))
    #
    print(len(result))
    print(result)

if __name__ == '__main__':
    main()

用起来也很简单:

python py_findCommon.py file1 [file2]...

即可。

参考链接:

Python3 集合
https://www.runoob.com/python3/ref-set-intersection.html

https://stackoverflow.com/questions/2541752/best-way-to-find-the-intersection-of-multiple-sets

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/5146.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注