flink 注册函数示例

需求 (filter):

现在有这么一个需求,统计出现在纽约的行车记录。这里我们需要进行一个过滤的操作,我们需要有个自定义的 UDF ,具体思路是,表里面有经度和维度这两个字段,通过这个可以来开发一个是否在纽约的 UDF。

public class IsInNYC extends ScalarFunction {

    // geo boundaries of the area of NYC
    private static double LON_EAST = -73.7;
    private static double LON_WEST = -74.05;
    private static double LAT_NORTH = 41.0;
    private static double LAT_SOUTH = 40.5;

    public static boolean eval(float lon, float lat) {
        return isInNYC(lon, lat);
    }

    public static boolean isInNYC(float lon, float lat) {

        return !(lon > LON_EAST || lon < LON_WEST) &&
                !(lat > LAT_NORTH || lat < LAT_SOUTH);
    }
}

 

posted @ 2019-08-20 10:18  leon0  阅读(523)  评论(0编辑  收藏  举报