统一识别_定义类型| 学习笔记

简介: 快速学习统一识别_定义类型

开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第七阶段)统一识别_定义类型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/682/detail/11839


统一识别_定义类型

了解完图集运算,回到数据集中,做统一用户识别的任务

// (4)统一用户识别

// 需求:有些数据中,有 uuid, 有一些有 mac, 有一些有udid

在数据集中有很多标注ID的东西,假如有个问题,一个用户,

// 场景:拿着手机移动,上午在家里,下午在教室,晚上在宿舍(ip

地址不一样,但 mac 地址一样)

// 情况:用户1,在一个时间点上,汇报了 mac, udid, 另外一个

时间点汇报了 mac, uuid,构建连通图

// 环境:先创建 Vertex, Edge

}

/**...*/

def createTags(row: Row): IdsWithTags = {...}

def genIdMap(row: Row): Map[String, String] = {...}

def getMainId(ids: Map[String, String]): String = {...}

def toGeoHash(longitude: Double, latitude: Double): String

= {...}

}

case class IdsWithTags(mainId: String, ids: Map[String,

String], tags: Map[String, Int])

(定义两个新的 case class)

Case class Vertex(id: String, ids: Map[String, String], tags: Map[String,Int])

// 任何一个顶点都需要 id, String 类型,进行图计算以后还需要再合并数据,整个的 id 列表 ids,对应的是 Map,里面存放[String, String],标签也要合并,此时生成对应的 tags,也是一个 Map,里面为[String,Int]

Case class Edge(src: String, dst: String)

// Edge 中接收一些参数,边“Edge”要表达不同顶点之间的关系,所以必须有两个字段,分别为 src dst,都保持和 id 一样的类型为 Stringsrc 代表这个边的一个顶点的 iddst 代表另一个顶点的 id

相关文章
|
8月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
机器学习/深度学习 存储 人工智能
类型体系与基本数据类型(第四节)
类型体系与基本数据类型(第四节)
66 1
|
机器学习/深度学习 设计模式 算法
类型体系与基本数据类型(第三节)
类型体系与基本数据类型(第三节)
60 0
|
机器学习/深度学习 存储 算法
类型体系与基本数据类型(第一节)
类型体系与基本数据类型(第一节)
80 0
|
7月前
|
安全 Java 数据库
ifPresent()`方法的用途、使用场景
ifPresent()`方法的用途、使用场景
495 4
|
3月前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
67 0
|
7月前
|
C语言 C++
C++对C的改进和拓展\string类型
C++对C的改进和拓展\string类型
40 1
|
7月前
|
数据安全/隐私保护 C++
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
|
7月前
|
JSON NoSQL 关系型数据库
DDIA文档型和关系型 工厂模式总结
【6月更文挑战第9天】文档型数据库在全量访问时效率高,但部分字段访问仍需加载全文档。不同数据库通过特定方式优化,如Spanner的嵌入式表,HBase和Cassandra的列族,图数据库的点边集中。关系型与文档型融合,如MySQL、PostgreSQL的JSON支持和RethinkDB的relational-link Joins。复杂对象创建可采用工厂模式,封装变化、复用代码、隔离和控制复杂度。简单场景下直接用`new`关键字即可。
39 0
|
8月前
|
Java 索引
通用枚举类
本文介绍了Java中枚举类的两种常见用法。场景一展示了一个包含类型值的枚举`OperatorType`,通过构造函数设置类型并在`enumOf`方法中按值查找枚举常量。场景二的`EnableCheck`枚举使用`ordinal()`方法获取枚举常量的序号(默认从0开始),并转化为字符串返回,提供了`getValue()`方法以获取序号的字符串表示。
54 5