我想基本上匹配两个数据库的email字段,其中一个表有email作为email数组,而另一个表有一个字符串字段,每个表有几十亿条记录。所以效率非常重要。我曾经尝试过制作一个python脚本,但是我认为使用我制作的脚本需要很长时间,它的时间复杂度为o(n^2)。任何更好的python脚本都是非常受欢迎的。如果有人能提出一个非常有用的方法。
nbysray51#
我会为这个问题评估apachespark。即使在单机环境中,spark也可以针对数据库并行化请求,这对于处理数十亿条记录的情况很有帮助。当然,集群会更好,但是我在本地机器上使用spark有非常令人满意的性能。最后,spark支持python和sql,我的意思是,您可以在这两种语言中进行选择来创建您的解决方案。你可以从这里开始https://www.datacamp.com/community/tutorials/apache-spark-python,使用pyspark外壳。
lokaqttq2#
我会首先尝试把这个逻辑推到hive,然后尝试在两个字段上进行内部连接。显然需要将它们转换为相同的字符串结构,但这可以在内部join语句本身中完成。由于hive应该将计算分布在集群中,因此它将尽可能地高效。。。。如果发布表结构,我可以用实际的hive语句进行更新。
2条答案
按热度按时间nbysray51#
我会为这个问题评估apachespark。即使在单机环境中,spark也可以针对数据库并行化请求,这对于处理数十亿条记录的情况很有帮助。
当然,集群会更好,但是我在本地机器上使用spark有非常令人满意的性能。
最后,spark支持python和sql,我的意思是,您可以在这两种语言中进行选择来创建您的解决方案。你可以从这里开始https://www.datacamp.com/community/tutorials/apache-spark-python,使用pyspark外壳。
lokaqttq2#
我会首先尝试把这个逻辑推到hive,然后尝试在两个字段上进行内部连接。显然需要将它们转换为相同的字符串结构,但这可以在内部join语句本身中完成。由于hive应该将计算分布在集群中,因此它将尽可能地高效。。。。
如果发布表结构,我可以用实际的hive语句进行更新。