【问题标题】:Most efficient way to match two fields in hive databases匹配 hive 数据库中两个字段的最有效方法
【发布时间】:2019-08-20 11:55:26
【问题描述】:

我想基本上匹配两个数据库的电子邮件字段,其中一个表将电子邮件作为电子邮件数组,而另一个表有一个字符串字段,每个表都有数十亿条记录。所以效率很重要。

我尝试过制作一个 python 脚本,但我认为使用我制作的脚本需要很长时间才能完成,它的时间复杂度为 O(n^2)。任何更好的python脚本都非常受欢迎。

如果有人能提出一种非常有用的方法。

【问题讨论】:

  • 您可能需要用一些示例数据展示您的表结构以获得答案。明确的预期结果将有助于进一步。 :-)

标签: python hadoop hive dataset bigdata


【解决方案1】:

我会首先尝试将该逻辑推送到 hive 并尝试在两个字段上进行内部连接。您显然需要将它们转换为相同的字符串结构,但这可以在 INNER JOIN 语句本身中完成。由于 Hive 应该在集群中分配计算,因此它将尽可能高效....
如果您发布表结构,我可以使用应该工作的实际 Hive 语句进行更新。

【讨论】:

  • 完全正确。这个问题太模糊,无法回答。
【解决方案2】:

我会针对这个问题评估 Apache Spark。即使在单机环境中,Spark 也可以并行处理针对数据库的请求,这在这种具有数十亿条记录的情况下会有所帮助。

当然,集群会更好,但我在本地机器上使用 Spark 的性能非常令人满意。

最后,Spark 支持 Python 和 SQL,我的意思是,您可以在这两种语言之间进行选择来创建您的解决方案。您可以使用 pyspark shell 从这里开始https://www.datacamp.com/community/tutorials/apache-spark-python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2022-01-07
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多