数据样本:
/**
- SDNkMu8ZT68 w00dy911 630 People & Blogs 186 10181 3.49 494 257 rjnbgpPJUks EYC5bWF0ss8 EUPHdnE83GY
*/
1.1ETL需求
①在一个表中不管是什么集合类型,集合之间元素的分隔符必须统一
在清洗时,需要让集合中元素的分隔符统一。将related ids元素的分隔符统一为&
②集合之间元素的分隔符必须和字段的分隔符不同
③祛除category中多余的空格,像tt & aa
④每行数据按照\t分割后的字段数量至少为9,否则数据不合法
1.2如何ETL
①通常情况下,要求程序产生的数据格式必须有严格要求的,尽量数据规范,避免之后频繁ETL
②如果需要ETL
使用shell中的工具:cut,wc,awk进行ETL
写MR程序进行ETL(目前采用)
使用工具例如Kettle!
1.3编写ETL程序**
Util类
public class ETLUtil {
public static String parse(String source){
//每行数据按照\t分割后的字段数量至少为10
String[] words = source.split("\t");
//如果related ids是必须的,至少需要10个字段
if (words.length < 10){
return null;
}
//祛除category中多余的空格
words[3]=words[3].replaceAll(" ","");
//将related ids元素的分隔符统一为&