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

榆林做网站猴痘的预防措施

榆林做网站,猴痘的预防措施,门户网站制作模板,seo在线优化平台前言 说明 以用户实体为例#xff0c;ID 类型包含 user_id 和 device_id。当然还有其他类型id。不同id可以获取到的阶段、生命周期均不相同。 device_id 生命周期通常指的是一个设备从首次被识别到不再活跃的整个时间段。 user_id是用户登录之后系统分配的唯一标识#xff…前言 说明 以用户实体为例ID 类型包含 user_id 和 device_id。当然还有其他类型id。不同id可以获取到的阶段、生命周期均不相同。 device_id 生命周期通常指的是一个设备从首次被识别到不再活跃的整个时间段。 user_id是用户登录之后系统分配的唯一标识即使不同的设备只要user_id相同就会识别为一个用户但 user_id 只能在登录后获取到所以会损失用户登录前的行为数据。 单体应用单独使用user_id或者device_id都不能完整地表达一个用户多应用多类id又有差异性。如果可以将不同 ID 进行关联映射最终通过唯一的 ID 标识用户。所以需要一个解决方案来映射。 用户渠道 手机、平板电脑安卓手机、ios手机有PC、APP和小程序 标识情况 1cookieidPC站存在用户cookies中的ID会被清理电脑时重生成。 2unionid微信提供的唯一身份认证。 3mac手机网卡物理地址。 4imei(入网许可证序号)安卓系统可取到。 5imsi(手机SIM卡序号)安卓系统可取到。 6androidid 安卓系统id。 7openid (app自己生成的序号) 卸载重装app就会变更。 8idfa广告跟踪码用户可重置。 9deviceid(app日志采集埋点开发人员自己定义一种逻辑id可能取自 android,imei,openudid等)逻辑上的id。 还有其他不同应用设定标识用户的ID. . . . . . 设备与登录用户分析 1. device_id 作为唯一 场景 适用登录率比较低的应用。 缺点 不同用户登录一个设备会识别为一个用户。同一个用户使用不同设备会识别为多个用户。 2. 一个device_id关联一个user_id 场景 同一个设备登陆前(device_id) 和登录后(user_id) 可以绑定。 缺点 一个未被绑定的设备登录前的用户和登录后的用户不同这个时候会被错误地识别为同一个用户。一个被绑定的设备后续被其他用户在未登录状态下使用也会被错误地识别为之前被绑定的用户。一个被绑定了的用户使用其他设备时未登录状态下的数据不会标识为该用户数据。 3. 多个device_id关联一个user_id 场景 只要登录后的 user_id 相同其多个设备上登录前后的数据都可以连通起来。 缺点 一个 device_id只能绑定到一个用户当其他用户使用同一个已被绑定的设备时其登录前数据还是会被识别成已绑定到该设备的用户。 4. 多个应用间的不同ID进行关联 场景 当存在多个应用实现应用间 ID 映射和数据相通时。比如通过手机号邮箱号微信号等等可以统一为一个 ID。 缺点 复杂性高。 5. 行业内方案 网易ID-Mapping 网易产品线网易云音乐邮箱新闻严选等等不同的应用有不同的ID比如phoneemailyanxuan_idmusic_id 等等 思路与方案 结合各种应用账号各种设备型号之间的关系以及设备使用规律比如时间和频次。采用规则过滤 和 数据挖掘判断账号是否属于同一个人。 存在问题和方案 用户有多个设备信息使用一定时间 和 频次才进行关联。设备以后从来不用设定设备未使用衰减函数。 6. 其他 美团采用手机号、微信、微博、美团账号的登录方式大众点评采用的手机号、微信、QQ、微博的登录方式其交集为手机号、微信、微博。最终对于注册用户账户体系美团采用了手机号作为用户的唯一标识。 图计算 图计算的核心思想将数据表达成“点”点和点之间可以通过某种业务含义建立“边”。然后我们就可以从点、边上找出各种类型的数据关系。 在GraphX中图由顶点Vertices和边Edges组成 顶点Vertices图中的点代表实体例如人、商品或事件。边Edges连接两个顶点的线代表实体之间的关系例如朋友关系、购买行为或网络连接。边的属性Edge Attributes边的附加信息可以是权重、成本或其他相关数据。顶点的属性Vertex Attributes顶点的附加信息可以是标签、状态或其他相关数据。 首先通过一个案例先认识下图计算。 案例朋友关系的连通性 首先需要将这些数据转换为Vertex和Edge对象 假设有以下数据user_id: A, friend_id: B user_id: B, friend_id: C user_id: C, friend_id: D user_id: D, friend_id: E user_id: E, friend_id: F user_id: F, friend_id: G user_id: G, friend_id: H user_id: H, friend_id: I user_id: I, friend_id: J import org.apache.spark._ import org.apache.spark.graphx._val conf new SparkConf().setAppName(Graph Example).setMaster(local[*]) val sc new SparkContext(conf)// 将原始数据转换为Vertex和Edge对象 val vertices: RDD[(VertexId, String)] sc.parallelize(Seq((1L, A), (2L, B), (3L, C), (4L, D), (5L, E),(6L, F), (7L, G), (8L, H), (9L, I), (10L, J)) )val edges: RDD[Edge[String]] sc.parallelize(Seq(Edge(1L, 2L,friend), Edge(2L, 3L,friend), Edge(3L, 4L,friend),Edge(4L, 5L,friend), Edge(5L, 6L,friend), Edge(6L, 7L,friend),Edge(7L, 8L,friend), Edge(8L, 9L,friend),Edge(9L, 10L,friend), Edge(10L, 1L,friend) ))// 创建图 val graph: Graph[String,String] Graph(vertices, edges)// triplets同时存储了边属性和对应顶点信息 graph.triplets.foreach(println)((4,D),(5,E),friend) ((5,E),(6,F),friend) ((9,I),(10,J),friend) ((10,J),(1,A),friend) ...... // 连通性可以将每个顶点都关联到连通图里的最小顶点 val value graph.connectedComponents() value.vertices.map(tp (tp._2, tp._1)).groupByKey().collect().foreach(println)结果(1,CompactBuffer(8, 1, 9, 10, 2, 3, 4, 5, 6, 7))如果修改Edge(5L, 1L,friend) Edge(10L, 5L,friend)val edges: RDD[Edge[String]] sc.parallelize(Seq(Edge(1L, 2L,friend), Edge(2L, 3L,friend), Edge(3L, 4L,friend),Edge(4L, 5L,friend), Edge(5L, 1L,friend), Edge(6L, 7L,friend),Edge(7L, 8L,friend), Edge(8L, 9L,friend),Edge(9L, 10L,friend), Edge(10L, 5L,friend) ))结果 (1,CompactBuffer(1, 2, 3, 4)) (5,CompactBuffer(8, 9, 10, 5, 6, 7)) ID-Mapping 简单实现 val conf new SparkConf().setAppName(Graph Example).setMaster(local[*]) val sc new SparkContext(conf) // 假设我们有三个数据集 val userMappingData sc.parallelize(Seq((11L,111L), // phone,device_id(22L,222L) ))val userInfoData sc.parallelize(Seq((11L, 1111L), // phone,open_id这里把phone当作user_id(22L, 2222L) ))val userLoginData sc.parallelize(Seq((1111L, 11111L, 111111L), // open_id,idfa,idfy(2222L, 22222L, 222222L) ))// 为每个数据集创建顶点RDD // val userVertices userMappingData.flatMap(item { // for (element - item.productIterator) // yield (element,element) // })val phoneVertices userMappingData.map { case (phone, _) (phone, phone) } val deviceVertices userMappingData.map { case (_, deviceId) (deviceId, deviceId) }val userPhoneVertices userInfoData.map { case (phone,_) (phone, phone) } val openidVertices userInfoData.map { case (_, openId) (openId, openId) }val idfaVertices userLoginData.flatMap { case (openId, idfa, _) Seq((openId, openid), (idfa, idfa)) } val idfvVertices userLoginData.flatMap { case (openId, _, idfv) Seq((openId, openid), (idfv, idfv)) }// 合并所有顶点RDD val allVertices phoneVertices.union(deviceVertices).union(userPhoneVertices).union(openidVertices).union(idfaVertices).union(idfvVertices)// 创建边RDD val mappingEdges userMappingData.map { case (phone, deviceId) Edge(phone, deviceId, maps_to) } val infoEdges userInfoData.map { case (phone, openid) Edge(phone, openid, linked_to) } val loginEdges userLoginData.flatMap { case (openid, idfa, idfv) Seq(Edge(openid, idfa, logins_with), Edge(openid, idfv, logins_with)) }// 合并所有边RDD val allEdges mappingEdges.union(infoEdges).union(loginEdges)val graph Graph(allVertices, allEdges) graph.triplets.map(item 点 and 边:item).foreach(println)点 and 边:((22,phone),(222,deviceId),maps_to) 点 and 边:((11,phone),(111,deviceId),maps_to) 点 and 边:((11,phone),(1111,openId),linked_to) 点 and 边:((22,phone),(2222,openId),linked_to) 点 and 边:((1111,openId),(11111,idfa),logins_with) 点 and 边:((1111,openId),(111111,idfv),logins_with) 点 and 边:((2222,openId),(22222,idfa),logins_with) 点 and 边:((2222,openId),(222222,idfv),logins_with) val value graph.connectedComponents() value.vertices.map(tp (tp._2, tp._1)).groupByKey().collect().foreach(println)(11,CompactBuffer(1111, 11, 111, 11111, 111111)) (22,CompactBuffer(2222, 22, 222, 222222, 22222)) 说明 真实的数据可能不会都是Long型需要你特殊处理计算计算出结果再转换为明文。案例中数据连通性后可以生成统一ID。 上面只是简单案例在最上面分析过会出现不同的情况更复杂的需要更复杂的逻辑处理。 除了图计算直接SQL JOIN也即可。
http://www.dnsts.com.cn/news/94629.html

相关文章:

  • 山东网站建设维护东营网站建设服务电话
  • 昆明做网站开发维护的公司太原网站关键词推广
  • 单屏网站设计哪里有个人品牌营销公司
  • 天津网站怎么做seo外贸网站模板外贸网站建设
  • 电子政务与网站建设意义企业网站建设可以分为( )交互层次
  • 网站建设1000字沧州建设厅官方网站
  • 官方网站建设费用WordPress中文章固定链接
  • 微网站怎么免费做注册公司没有地址怎么弄
  • 广东金东建设工程公司网站网站做301根目录在哪里
  • 人力网站建设的建议怎么做一个公众号微信
  • 支付网站设计汉中网站建设
  • 网站标题正确书写标准怎么查网站是那个公司做的
  • 玉林网站设计外贸业务员怎么开发客户
  • 无锡网站制作哪家实惠巩义便宜网站建设
  • 网站设置为应用程序网站如何做电脑和手机app
  • 公司网站建设模板免费建com网站
  • 大学生家教网站开发网站建设挣钱的需要什么
  • 网站建设管理人员推荐表上海网络推广软件
  • 太原微商网站建设网站制作与网站建设
  • wordpress图片模板百度网站优化软件
  • 河北建设教育培训网站成都网站优化费用
  • 公司建设电商型网站的作用重庆建筑安全信息网
  • 免费做 爱视频网站上海高端网站定制建设公司
  • 关键词优化公司网站30几岁的人想学做网站
  • 一般的手机网站建设多少钱做网站一定要自己搭建服务器吗
  • 网站建设晋icp备开放平台 的优势 传统门户网站
  • 大型网站开发pdf中国国际贸易网官网
  • 想搭建网站学什么聊城网页设计公司
  • 网站简繁转换seo公司推广宣传
  • 软文网站名称天津网站建设座机号