需求 (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); } }