我实现了一个定制的scalarfunction类,我想在open()函数中初始化一个从数据库读取数据的hashmap,但它总是卡在那里,所以像这样使用open()函数是正确的方法吗?以及open()函数被调用的次数,一次或与eval()函数相同的次数。我的示例代码如下:
public class GenNameUDF extends ScalarFunction {
@Override
public void open(FunctionContext context) throws Exception {
super.open(context);
CommonClass.map = initMap();//here will read data from db
}
public String eval(String pubIp) {
return todo();
}
}
1条答案
按热度按时间vddsk6oq1#
如果数据库中的数据量很小,则只能使用广播访问数据库一次
否则,您可以在open方法中构建连接,并在需要时访问db
-yt$文件也很有用。