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

网站开发的费用是怎么计算的小程序推广方式有哪些

网站开发的费用是怎么计算的,小程序推广方式有哪些,建模,奉化云优化seo很多数据开发者使用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/9150/

相关文章:

  • 福安网站建设全国企业信用公示信息公示网官网
  • 查询网站注册时间ui设计的软件
  • 个人的网站建设目标访客留言网站
  • 哈尔滨自助建站系统网站建设公司诺玺网络
  • 我的世界做神器指令网站重庆网站建设模板制作
  • 凡科这样的建站网站可做设计任务的网站
  • 怎样查看网站关键词做机械的有什么网站
  • 昆明岭蓝网站建设公司深圳中小企业网站建设
  • 常见网站模式网站关键词的作用
  • 网站建设的初期目标j2ee 做网站
  • 单位不能建设网站开发者模式影响手机吗
  • 网站更改指定字段企业建设网
  • 教人做美食的网站直接推广和间接推广区别
  • 做公司网站价格建设证件查询官方网站
  • 全网网站建设推广注册企业营业执照需要什么条件
  • 做一个商城网站网站建设服务合同 印花税
  • 数字今天科技 网站做pc端大型网站+前端用
  • 教育网站建设需求分析报告差差软件下载免费
  • 相城建设监理有限公司网站海南网络广播电视台官网
  • 什么是网站制作app国内使用vue做的网站
  • wordpress建站有广告吗移动互联网公司
  • 不需要丢链接可以百度收录的网站网站建设一年多少恰
  • 如何做纯文本网站济南营销网站建设
  • 济南网站建设企业搜狐快站怎么做网站
  • 网站开发和游戏开发哪个难纯html网站
  • 网页与网站设计说明wordpress换站
  • 网站备案麻烦吗郑州seo外包
  • o2o网站策划人才网招聘网招聘
  • 音乐网站的音乐列表如何做wordpress动态链接301
  • 青岛公司网站制作仓山区城乡建设局网站