我正在处理配置单元表,必须根据地理位置提取数据。我只需要过滤amer区域的数据,我的意思是列contycode只包含列表'arg'、'bhs'、'bra'、'can'、'cub'、'mex'、'usa'、'ven'中的一个或任意组合。是否有任何配置单元操作符可以基于此规范过滤数据:contrycode包含给定列表中的一个或一个组合?提前谢谢
uubf1zoe1#
嗨,创建一个表格,你可以有Map的大陆和国家的Map。进行内部连接并获取数据。
ie Contmaptable country_code , continent query wiil look like select * from youtable yt join Contmaptable cm on yt.country_code =cm.country_code and continent = 'AMAR'
vxf3dgd42#
我添加了一个自定义函数:
class FilterCodePaysAMER extends UDF { def evaluate(s1: String, a1: Array[String]): Boolean = { s1 .replaceAll("\\[", "") .replaceAll("\\]", "") .split(",") .map(x => a1.contains(x)) .reduce((b1, b2) => b1 && b2) }
所以当我调用函数时:
val a1 = Array("ARG", "BHS", "BRA", "CAN", "CUB", "MEX", "USA", "VEN") filter.evaluate("[CAN,USA,ARG,USA,USA,BRA,CAN,BHS,USA,USA,VEN,CUB,MEX,USA,USA,USA,CAN,USA,TUN]", a1)
它返回false,因为tun不属于表示amer区域的输入列表
2条答案
按热度按时间uubf1zoe1#
嗨,创建一个表格,你可以有Map的大陆和国家的Map。进行内部连接并获取数据。
vxf3dgd42#
我添加了一个自定义函数:
所以当我调用函数时:
它返回false,因为tun不属于表示amer区域的输入列表