1. 问题描述
收集日志avro数据中有两个Map字段appInstall、appUse分别表示已安装的app、正在使用的app,且key值为app的名称,value值为app使用信息。现在要得到一份匹配上购物类app支付宝|京东|淘宝|天猫的用户名单;MapReduce 解决办法如下:
public static class M extends Mapper<String, Pair, String, Text> {
Text text = new Text();
@SuppressWarnings("unchecked")
@Override
protected void map(String key, Pair value, Context context) throws IOException, InterruptedException {
Map data = value.fields.data;
String dvc = data.get("dvc").toString();
Map<String, Object> appInstall = (Map<String, Object>) data.get("appInstall");
Map<String, Object> appUse = (Map<String, Object>) data.get("appUse");
本文介绍了如何使用Pig处理日志数据中的Map字段,通过Bag正则匹配方法找到匹配购物类、游戏类或金融类app的用户名单。在Pig脚本中,利用Apache DataFu的UDF进行匹配,并探讨了优化方案,减少遍历次数提高效率。
订阅专栏 解锁全文
6183

被折叠的 条评论
为什么被折叠?



