//2015年4月30日
提取特征之所以难,是因为我们写出的sql语句往往只能提取一个特征。
而在ODPS上却不一样,一条语句可以提取很多特征。
如提取最近1、2、3、4天四种行为的数量
重点是decode函数,具体用法详见ODPS-sql文档
<span style="white-space:pre"> </span>int days[]={0,-1,-2,-3};
String sql="create table if not exists user_set1 as select user_id";
featurenum=0;
for(int i=1;i<5;i++){
for(int j:days){
String date2=processdate(date, j);
sql+=",\t sum(decode(behavior_type="+i+" and mydate=\""+date2+"\",true,1,0)) as feature"+featurenum++ +"\t";
}
sql+=",\t sum(decode(behavior_type="+i+" and mydate<=\""+date+"\" and mydate>\""+processdate(date, -4)+"\",true,1,0)) as feature"+featurenum++ +"\t";