当前位置: 首页 > 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.pierceye.com/news/67491/

相关文章:

  • 陕西省住建厅网站官网用 asp net 做 的网站
  • 网站开发设计的源码盘锦建设工程信息网站
  • 重庆网站界面设计比较好的网页设计公司
  • 沈阳个人网站建设共享虚拟主机 几个网站
  • 襄阳宜城网站建设咨询类网站建设
  • 网站建设是永久性的吗wordpress侧边栏按钮
  • iis怎么给网站设置权限关于加强公司网站建设的通知
  • 免费聊天网站模板和源码建设工程 质量 协会网站
  • 网站建设公司线下推广制作网站视频教程
  • 建一个wordpress网站成本网页设计师任职资格
  • 网站根目录怎么写自助建站网站
  • 开发网站的流程细节制作视频的手机软件
  • 厦门网站建设外贸如何用asp编写网站后台
  • c 做网站怎么显示歌词wordpress支付平台
  • 德勤管理咨询济南网站排名优化报价
  • 徐闻网站开发公司页面设计升级访问
  • 建筑设计网站素材net网站建设多少前
  • 关键词爱站网关键词挖掘工具上海品牌策划公司有哪些
  • 大连做网站外包开发手机软件的工具
  • 四川省建设网塔吊证查询网站企业公示信息查询系统吉林
  • 摄影网站的设计律师在线咨询
  • 微信网页网站怎么做中国城乡与住房建设部网站
  • 澄迈网站新闻建设企业密信
  • 网站数据分析案例一次性医用口罩价格
  • 过期网站查询南京安居建设公司
  • 佛山正规的免费建站磐安县住和城乡建设局网站
  • 网站购买空间网站抬头怎么做
  • 哪里有网站制作建设网站流量消耗计算
  • 酒店网站的设计摘要图片制作在线制作免费
  • 棋牌游戏网站模板微信公众号文章里好看的图片在哪个网站做