当前位置: 首页 > news >正文

四平市网站建设_网站建设公司_漏洞修复_seo优化

网站目录访问,论文 网站建设,h5手机端网站开发,做网站公司怎么备案客户网站很多数据开发者使用bitmap技术对用户数据进行编码和压缩#xff0c;然后利用bitmap的与/或/非的极速处理速度#xff0c;实现类似用户画像标签的人群筛选、运营分析的7日活跃等分析。 本文给出了一个使用MaxCompute MapReduce开发一个对不同日期活跃用户ID进行bitmap编码和计…很多数据开发者使用bitmap技术对用户数据进行编码和压缩然后利用bitmap的与/或/非的极速处理速度实现类似用户画像标签的人群筛选、运营分析的7日活跃等分析。 本文给出了一个使用MaxCompute MapReduce开发一个对不同日期活跃用户ID进行bitmap编码和计算的样例。供感兴趣的用户进一步了解、分析并应用在自己的场景下。 import com.aliyun.odps.OdpsException; import com.aliyun.odps.data.Record; import com.aliyun.odps.data.TableInfo; import com.aliyun.odps.mapred.JobClient; import com.aliyun.odps.mapred.MapperBase; import com.aliyun.odps.mapred.ReducerBase; import com.aliyun.odps.mapred.conf.JobConf; import com.aliyun.odps.mapred.utils.InputUtils; import com.aliyun.odps.mapred.utils.OutputUtils; import com.aliyun.odps.mapred.utils.SchemaUtils; import org.roaringbitmap.RoaringBitmap; import org.roaringbitmap.buffer.ImmutableRoaringBitmap;import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteBuffer; import java.util.Base64; import java.util.Iterator;public class bitmapDemo2 {public static class BitMapper extends MapperBase {Record key;Record value;Overridepublic void setup(TaskContext context) throws IOException {key context.createMapOutputKeyRecord();value context.createMapOutputValueRecord();}Overridepublic void map(long recordNum, Record record, TaskContext context)throws IOException{RoaringBitmap mrbnew RoaringBitmap();long AID0;{{{{AIDrecord.getBigint(id);mrb.add((int) AID);//获取keykey.set(new Object[] {record.getString(active_date)});}}}}ByteBuffer outbb ByteBuffer.allocate(mrb.serializedSizeInBytes());mrb.serialize(new DataOutputStream(new OutputStream(){ByteBuffer mBB;OutputStream init(ByteBuffer mbb) {mBBmbb; return this;}public void close() {}public void flush() {}public void write(int b) {mBB.put((byte) b);}public void write(byte[] b) {mBB.put(b);}public void write(byte[] b, int off, int l) {mBB.put(b,off,l);}}.init(outbb)));String serializedstring Base64.getEncoder().encodeToString(outbb.array());value.set(new Object[] {serializedstring});context.write(key, value);}}public static class BitReducer extends ReducerBase {private Record result null;public void setup(TaskContext context) throws IOException {result context.createOutputRecord();}public void reduce(Record key, IteratorRecord values, TaskContext context) throws IOException {long fcount 0;RoaringBitmap rbmnew RoaringBitmap();while (values.hasNext()){Record val values.next();ByteBuffer newbb ByteBuffer.wrap(Base64.getDecoder().decode((String)val.get(0)));ImmutableRoaringBitmap irb new ImmutableRoaringBitmap(newbb);RoaringBitmap p new RoaringBitmap(irb);rbm.or(p);}ByteBuffer outbb ByteBuffer.allocate(rbm.serializedSizeInBytes());rbm.serialize(new DataOutputStream(new OutputStream(){ByteBuffer mBB;OutputStream init(ByteBuffer mbb) {mBBmbb; return this;}public void close() {}public void flush() {}public void write(int b) {mBB.put((byte) b);}public void write(byte[] b) {mBB.put(b);}public void write(byte[] b, int off, int l) {mBB.put(b,off,l);}}.init(outbb)));String serializedstring Base64.getEncoder().encodeToString(outbb.array());result.set(0, key.get(0));result.set(1, serializedstring);context.write(result);}}public static void main( String[] args ) throws OdpsException{System.out.println(begin.........);JobConf job new JobConf();job.setMapperClass(BitMapper.class);job.setReducerClass(BitReducer.class);job.setMapOutputKeySchema(SchemaUtils.fromString(active_date:string));job.setMapOutputValueSchema(SchemaUtils.fromString(id:string));InputUtils.addTable(TableInfo.builder().tableName(bitmap_source).cols(new String[] {id,active_date}).build(), job); // ------------------------- // | id | active_date | // ------------------------- // | 1 | 20190729 | // | 2 | 20190729 | // | 3 | 20190730 | // | 4 | 20190801 | // | 5 | 20190801 | // -------------------------OutputUtils.addTable(TableInfo.builder().tableName(bitmap_target).build(), job); // ------------------------- // | active_date | bit_map | // ------------------------- // 20190729,OjAAAAEAAAAAAAEAEAAAAAEAAgA3D // 20190730,OjAAAAEAAAAAAAAAEAAAAAMA // 20190801,OjAAAAEAAAAAAAEAEAAAAAQABQA3DJobClient.runJob(job);} }对Java应用打包后上传到MaxCompute项目中即可在MaxCompute中调用该MR作业对输入表的数据按日期作为key进行用户id的编码同时按照相同日期对bitmap后的用户id取OR操作根据需要可以取AND例如存留场景并将处理后的数据写入目标结构表当中供后续处理使用。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.lebaoying.cn/news/31186.html

相关文章:

  • 免费一键网站wordpress 替换主题图片
  • 招商加盟类网站模板网站建设买阿里云云服务器
  • 电商网站的多选菜单插件网页设计网站含义
  • 小程序快速建站深圳品牌网站建设公司排名
  • 什么网站有做册子版wordpress好用的模板下载地址
  • 哪里有网站建设企业自己可以做网站吗
  • 天津网站备案网站过期查询
  • flash 做网站企业服务网
  • 旅游网站模板免费下载首页策划方案
  • 免费销售网站模板网站的色彩搭配
  • 沛县网站建设xlec深圳seo技术
  • .net网站如何优化手机免费建站系统
  • 工艺品网站怎么做网站建设维护实训总结
  • 华为手机官方网站登录系统安装wordpress
  • 官方网站查询叉车证公司企业建站
  • 在线做漫画的网站好动画设计好就业吗
  • 网站报名怎么做兰州网站备案谁家做
  • 个人求职网站html太仓新网站优化
  • 伊宁市做网站郑州优之客网站建设
  • 什么是网站前置审批广州自助网站搭建建站公司
  • 网站设计大概在什么价位花20亿做网站
  • 绚丽的网站软件推广赚钱
  • 用dw做的网站怎样弄上网上绍兴市工程建设网站
  • id97网站怎么做的深圳比较大的做网站设计公司
  • 网站底部广告钓鱼网站盗号下载
  • 网站开发证唐山seo网络推广
  • 武冈网站建设哪家好厦门创意网站建设
  • zencart 一个产品网站下单百度seo关键词优化排行
  • 双语网站建设广东省高水平建设专业网站
  • 百度网站推广方案wordpress小人无法显示