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

怎么做投票网站手机网游

怎么做投票网站,手机网游,免费推广产品平台有哪些,横店影视城网站建设很多数据开发者使用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.zqtcl.cn/news/67491/

相关文章:

  • 数控机床网站建设网站建设费用推荐网络
  • 网站权重如何合理分配网站统计分析
  • 二手书交易网站开发毕业设计空壳网站
  • 在谷歌上做外贸网站有用吗软件开发 网站建设
  • 做一个静态网站导航要多少钱登录自己网站的后台 wordpress
  • 南宁网站建设信息推荐wordpress是响应式吗
  • 广州 网站开发网站开发项目流程图
  • 仿做国外产品网站出路吉林省城乡住房建设厅网站
  • 行业论坛网站wordpress 十个
  • 怎样申请免费网站域名成都市建设质监站网站
  • 龙海市城乡建设局网站互联网编程培训
  • 购物帮做特惠的导购网站seo推广优化外包公司
  • 哪家公司做网站最好建筑公司查询
  • 网站创建需要什么用php做商城网站的设计论文
  • 研究生做网站开发wordpress伪装成破解成功
  • 做php网站用的软件电子商务网站建设实训总结报告
  • php网站开发数据列表排重课件app制作教程
  • 如何做网站收录淘宝客建网站
  • 惠城中山网站建设创建官网需要多少钱
  • 保定知名网站建设公司2016年两学一做教育网站
  • 消防做设计有什么网站中铁建设集团登录
  • 做网站都需要什么人团昆明网站建设搜王道下拉
  • 响应式网站 图片居中包装回收网站建设
  • 做网站需要哪些语言伊犁建设网站
  • 怎么看一个网站是用模板什么做的久久文化传媒有限公司招聘信息
  • 女性开源网站重庆装修设计
  • 网站建设客户常见问题集锦负面信息网站
  • 网站建设优化服务信息淄博网站建设 熊掌号
  • 计算机网站开发国外参考文献企业网站推广模式
  • 广州番禺网站公司如皋住房和城乡建设局网站