gpt4 book ai didi

sql - 优化 Spark 中的 Hive 表加载时间

转载 作者:行者123 更新时间:2023-12-04 20:56:51 26 4
gpt4 key购买 nike

我正在开发一个 Spark 流项目,其中传入的流与多个 Hive 表连接。所以我在spark中加载表并缓存它。

以下是给定的示例查询-

 val df = sql("select * from (select *, row_number() over (partition by a , b , c, d order by date desc) row_num from test) tmp where tmp.row_num = 1")

该表有 99% 的重复数据,所以我使用行号逻辑来区分。当我做 df.explain(true)下推没有条件。所以整个表加载到内存中。该表有数十亿条数据。这给 FAILED_TO_UNCOMPRESS(5)错误。

我是否应该使用上述查询创建 Hive View 并在 spark 中调用该 View ,以便获取结果数据。我不知道它是否有效。

大约有 10 个表每 15 分钟加载一次 Spark 。都具有相同的行号逻辑。如何启用下推?所以spark只能从Hive中获取结果数据。

最佳答案

您是否尝试过使用 MAX 函数而不是 ROW_NUM ?使用 ROW_NUM 可能是问题所在。我会使用以下查询:

val df = sql("select *, MAX(date) over (partition by a , b , c, d) from test")

MAX function definition更多细节。

关于sql - 优化 Spark 中的 Hive 表加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286188/

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