Doris udf函数报错-doris版本:2.0.11

Viewed 26

97f72db94b3d6319bdfdc4510dc1f33.png
--->UDF函数代码
![28bad584867b246ffab84fec7610bf0.png]
(https://ask.selectdb.com/uploads/post/5oYYuES6U19.png)

package com.xyy.doris.udf;

import org.apache.hadoop.hive.ql.exec.UDF;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class SaleProvIdsToName extends UDF {

    public static void main(String[] args) {
    }

    public String evaluate(String provIds) {
        Map<String, String> codeToRegionMap = new HashMap<>();
        codeToRegionMap.put("450000", "广西");

        // 3. 分割省份ID数组
        if(provIds == null || "".equals(provIds)){
            return null;
        }

        String[] provIdsArr = provIds.split(",");

        // 4. 转换为地区名称数组(使用 Java 8 Stream)
        String[] regionNames = Arrays.stream(provIdsArr)
                .map(code -> codeToRegionMap.getOrDefault(code, null))
                .toArray(String[]::new);

        return String.join(",", regionNames);
    }
}

--->建表语句
d394928c4b171a18e31d0bc59d96534.png
image.png
--->创建函数,执行后报错

1 Answers

测试2.0.15没有问题,去掉psvm部分的代码试试
image.png

代码:

package doris;

import org.apache.hadoop.hive.ql.exec.UDF;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Sale extends UDF {


    public String evaluate(String provIds) {
        Map<String, String> codeToRegionMap = new HashMap<>();
        codeToRegionMap.put("450000", "广西");

        // 3. 分割省份ID数组
        if(provIds == null || "".equals(provIds)){
            return null;
        }

        String[] provIdsArr = provIds.split(",");

        // 4. 转换为地区名称数组(使用 Java 8 Stream)
        String[] regionNames = Arrays.stream(provIdsArr)
                .map(code -> codeToRegionMap.getOrDefault(code, null))
                .toArray(String[]::new);

        return String.join(",", regionNames);
    }
}