feilong 发表于 2017-10-6 09:42:04

Spark 高级分析:第二章第2,3节

本帖最后由 feilong 于 2017-10-6 09:45 编辑


问题导读

1.写一个Spark程序包括哪几点?
2.文中称之为“记录链接”的是什么?
3.记录链接难点在哪儿?


static/image/hrline/4.gif


上一篇:Spark 高级分析:第二章第1节Scala和数据科学家
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22770&extra=


第2节 Spark编程模型
      Spark程序可基于小数据量数据集或者类似于分布式文件存储系统HDFS这样的持久化存储。写一个Spark程序包括以下几点:
[*] 定义一个关于输入数据集的转换。
[*] 调用将转换后的数据集输出到持久存储或将结果返回到驱动程序本地内存的操作
[*] 以分布式的方式运行本地计算得到结果。这些操作可决定下一步哪些转换或者动作会被触发。
[*] 理解Spark意味着理解框架提供的两组抽象之间的交集:存储和执行。Spark以一种优雅的方式将这些抽象成对,本质上允许数据处理管道中的任何中间步骤被缓存在内存中以供以后使用。

第3节 记录链接
      问题的一般结构是这样的:我们从一个或多个源系统收集了大量的记录,很可能有些记录是指同一个底层实体,例如客户、患者或业务或事件的位置。每个实体都有许多属性,如名称、地址或生日,我们需要使用这些属性来查找指向同一实体的记录。不幸的是,这些属性值并不完美:值可能有不同的格式,或错别字,或丢失信息,这意味着对属性值进行简单的等值判断将使我们错过一些重要的重复记录。例如,让我们比较下面的业务列表:
表2-1 记录链接的挑战
NameAddressCityStatePhone
Josh’s Coffee Shop 1234 Sunset BoulevardWest HollywoodCA(213)-555-1212
Josh Cofee1234 Sunset Blvd WestHollywoodCA555-1212
Coffee Chain #12341400 Sunset Blvd #2HollywoodCA206-555-1212
Coffee Chain Regional Office1400 Sunset BlvdSuite 2HollywoodCalifornia206-555-1212




      该表前两个实体指向相同的小咖啡店,即便数据实体错误导致他们好像是位于不同的城市(西好莱坞 vs 好莱坞)。另一方面,后两个实体实际上指的是不同的地址,同一连锁咖啡店的商业地点正好有一个共同的地址:一个是指一个实际的咖啡店,另一个是指当地的公司办公地点。这两个实体都提供公司总部在西雅图的官方电话号码。
      这个例子展示了使记录链接变得如此困难的所有内容:即使这两对实体看起来彼此相似,但我们做出重复/不重复的判定的标准不同,对每对实体来说结果不同。这是一种很容易被人类理解和识别的区别,但对于计算机来说是很难获知的。

美丽天空 发表于 2017-10-9 00:21:34

感谢分享

xiaoxiaoheiniao 发表于 2018-6-23 11:21:03

那如果碰到这样的情况,该如何区间解决呢?

a530491093 发表于 2019-1-17 09:32:13

来过!!!
页: [1]
查看完整版本: Spark 高级分析:第二章第2,3节