gpt4 book ai didi

hadoop - hive 是否为每条记录实例化一个新的 UDF 对象?

转载 作者:可可西里 更新时间:2023-11-01 14:23:13 25 4
gpt4 key购买 nike

假设我正在构建一个名为 StaticLookupUDF 的 UDF 类,它必须在构建期间从本地文件加载一些静态数据。

在这种情况下,我想确保我不会重复我需要的工作,因为我不想在每次调用 evaluate() 方法时重新加载静态数据。

显然每个映射器都使用它自己的 UDF 实例,但是是否为每个处理的记录生成一个新实例?

例如,映射器将处理 3 行。它是创建单个 StaticLookupUDF 并调用 evaluate() 3 次,还是为每个记录创建一个新的 StaticLookupUDF,并且每个实例仅调用一次 evaluate()?

如果第二个例子是真的,我应该用什么替代方式来构造它?

在文档中的任何地方都找不到这个,我打算查看代码,但我想我会同时问问这里的聪明人。

最佳答案

仍然不能完全确定这一点,但我通过使用静态延迟值根据需要加载数据来解决这个问题。

这样一来,每个映射器就有一个静态值实例。因此,如果您正在读取数据集并且有 6 个 map task ,那么您将读取数据 6 次。不理想,但比每条记录一次要好。

关于hadoop - hive 是否为每条记录实例化一个新的 UDF 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839881/

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