开发新手,SparkSQL有2个数据集,思想是循环嵌套求出匹配值。求其能够实现的方式。
可以换一个解法。你原来的数据,假设是列A,和列B。各自再加上一列标签,形成两组kv键值对,比如A变成a1,1a2,1a3,1....an,1列B变成b1,2b2,2b3,2....bn,2然后将两组数据union在一起(上下合并),变成a1,1...an,1b1,2...bn,2第一列命名为key,第二列命名为value再用dataframe的groupby和agg方法data.groupBy('key').agg(countUDAF('value',1),countUDAF('value',2))这里原先的count,sum,max等聚合方法不满足你需要,你要自定义实现一个UDAF方法,统计同一个key下,有几个1,几个2
赞0
踩0