电商实战——Hadoop实现(3)
项目要求:
-
根据电商日志文件,分析:
统计页面浏览量(每行记录就是一次浏览) -
统计各个省份的浏览量 (需要解析IP)
-
日志的ETL操作(ETL:数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程)
-
为什么要ETL:没有必要解析出所有数据,只需要解析出有价值的字段即可。本项目中需要解析出:ip、url、pageId(topicId对应的页面Id)、country、province、city
实现日志的ETL操作步骤:
创建一个ContentUtils类:
import org.apache.commons.lang3.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ContentUtils {
public static String getPageId(String url){
String pageId="-";
if (StringUtils.isBlank(url)){
return pageId;
}
Pattern pattern =Pattern.compile("topicId=[0-9]+");
Matcher matcher=pattern.matcher(url);
if(matcher.find()){
pageId=matcher.group().split("topicId=")[1];
}
return pageId;
}
}
创建一个ETLApps类:
创建一个IPParser类:
创建一个IPSeeker类: