gpt4 book ai didi

hive - 重复的结果导致AWS Athena(Presto)DISTINCT SQL查询?

转载 作者:行者123 更新时间:2023-12-04 12:39:43 25 4
gpt4 key购买 nike

我在S3上有一堆只包含MD5的文件,每行一个。我创建了一个AWS Athena表来对MD5运行重复数据删除查询。这些文件和表格中总共有数亿个MD5。

雅典娜表创建查询:

CREATE EXTERNAL TABLE IF NOT EXISTS database.md5s (
`md5` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'field.delim' = ','
) LOCATION 's3://bucket/folder/';

这是我尝试过的所有“重复”查询(这些都应该相同):
SELECT DISTINCT md5
FROM md5s;`

SELECT md5
FROM md5s
GROUP BY md5;

SELECT md5
FROM md5s
GROUP BY DISTINCT md5;

SELECT DISTINCT md5
FROM md5s
GROUP BY DISTINCT md5;

来自雅典娜的所有结果输出.csvs仍然具有重复的MD5。是什么赋予了?

Athena是否正在执行部分重复数据删除? -更奇特的是,如果我在雅典娜执行 COUNT(DISTINCT md5),则我得到的计数与导出时返回的行数不同。

雅典娜中的
  • COUNT(DISTINCT md5):97,533,226
  • 分别输出MD5的
  • 记录:97,581,616
  • 在结果导出中有14,790个重复项,因此的COUNT(DISTINCT)个计数都不好,结果导出也很差。


  • Athena是否在导出上创建重复项? -地块变厚。如果我在Athena表中查询在Athena结果导出中重复的MD5之一,则只能从该表中获得一个结果/行。我使用 LIKE查询进行了测试,以确保空格不会引起问题。这意味着Athena正在将重复项添加到导出中。结果中不超过两个相同的MD5。
    select
    md5,
    to_utf8(md5)
    from md5s
    where md5 like '%0061c3d72c2957f454eef9d4b05775d7%';

    雅典娜的计数和结果文件都错了吗? -我使用MySQL对这些相同的记录进行了重复数据删除,最终得到97,531,010个唯一的MD5。雅典娜计数和结果详细信息如下。

    雅典娜中的
  • COUNT(DISTINCT md5):97,533,226
  • 分别输出MD5的
  • 记录:97,581,616
  • 在结果导出中有14,790个重复项,因此似乎COUNT(DISTINCT)个计数都不好,并且结果导出也很差。


  • 我认为这是Athena的错误-我已向AWS开发团队提交了一份票证,以解决此问题,并将在发布时对其进行更新。

    这是相关的AWS论坛帖子,其他用户也看到同样的问题。
    https://forums.aws.amazon.com/thread.jspa?messageID=764702

    最佳答案

    我已与AWS团队确认,在提出问题时,这是AWS Athena的已知错误。我不确定这是否已解决。

    关于hive - 重复的结果导致AWS Athena(Presto)DISTINCT SQL查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970488/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com