Pigatin分析报告.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Pigatin分析报告

Pig Latin简介 对海量数据的按需分析处理需求不断增加,尤其是对于因特网公司,它们的技术革新主要依赖于对每天收集的数据的分析处理能力。要提高如此巨大数据集的存储和分析效率,必须采用高度并行的系统,例如:shared-nothing cluster。并行数据库产品,如:Teradata 提供了一种解决方案,但是这种方案的web规模扩展开销太大,性价比不高,而且为程序员提供了一种不太自然的编程语言-SQL。 事实上很多程序员更加偏爱过程式程序设计语言,因为这种语言的数据流更加清晰,便于分析和调试。这也是map/reduce编程模型流行的原因之一。另外map/reduce的运行于普通商业硬件组成的集群,软件框架保证了可靠性和可用性,通过低端硬件实现了高性能计算,这也是map/reduce的优势所在。 尽管如此,map/?reduce也(termId,termString,…) position_info: (termId,documentId,positon) 然后按照termId进行表连接,再按照termId和documentId进行分组。 Pig Latin具有灵活的,完全嵌套的数据模型,允许复杂的非原子数据类型(set,map,tuple)作为一个表的字段。嵌套数据类型比1NF更适合Pig的执行环境,主要是出于一下几点考虑: 嵌套式数据模型更符合程序员在编程过程中的需求,对他们来讲这种数据模型比标准化数据格式更加自然。 存储在磁盘上的数据本身往往具有嵌套的特点。比如,web爬虫程序为每个url和来自该url的外部连接集合产生输出。Pig是直接对文件进行操作,将这种web规模的数据进行标准化,然后再通过多次表连接进行数据重组显然是不现实的。 嵌套数据模型有助于完成前边介绍的代数式语言目标,即一步一步执行,每步只完成一次数据转换。例如,GROUP原语产生的每个输出元组都会有一个非原子字段(来自于GROUP输入中属于每个组的所有元组的嵌套集合)。 嵌套数据模型有助于用户写出各式各样的用户定义函数(UDF),关于UDF将在下一节给出介绍。 用户自定义函数(UDF) 对有哪些信誉好的足球投注网站日志,爬虫数据,点击流等数据分析的关键就是定制化处理。例如,一个用户对有哪些信誉好的足球投注网站词的自然语言填充感兴趣,或者判断一个特殊的网页是否是spam等都需要定制化处理。 为完成这种特殊的数据处理任务,Pig Latin提供UDF实现扩展支持。事实上,Pig Latin的所有处理(包括grouping,filtering,joining和per-tuple processing)都可以通过UDF定制。 UDF的输入和输出都可以使用嵌套数据模型,即可以使用非原子参数作为输入,输出也可以表示为非原子参数。考虑下面一个例子。 继续以第一个例子的设置为例,假设我们想为每个category,根据url的pagerank找出top10 urls。可以使用Pig Latin表示为: groups= GROUP urls BY category; output= FOREACH groups GENERATE category, top10(urls) 其中top10就是一个UDF,接收一组url作为输入(每次针对一个组),为每个组输出一个按pagerank排序前10位的urls,该输出包含了一个非原子字段。 目前,Pig的UDF需要用java实现,正在开发对其他语言的支持。 并行化需求 Pig Latin的目标是处理web规模的数据,因此它在实现时屏蔽了所有非并行的计算,即它只实现了一些容易并行处理的原语,不容易并行处理的原语(如:非等价表连接以及相关子查询)都没有被实现。 但是,这些操作可以通过UDF来实现,Pig Latin不显式提供非并行原语,用户就可以很容易发现程序中瓶颈。 调试环境 任何一种语言实现的应用程序,都要经历一个运行-调试-运行的循环迭代过程。这就需要一个调试环境,而对于Pig处理的数据规模而言,每次运行往往花费几十分钟甚至数小时,因此需要定制一种高效的调试环境。Pig开发了一种特定的交互式调试环境,对程序运行的每个步骤都以一个简单测试数据表来测试每步产生的输出结果。测试数据尽可能模拟真实数据,也基本可以完全表达程序的语义,并且,测试数据会随着程序的进化而自动调整,而不是固定不变的。 一步一步执行的测试数据有助于尽早发现错误(甚至可能在全数据集上第一次迭代执行之前),可以准确定位错误位置。 Pig Latin 数据模型 Pig的数据模型主要有以下四种类型构成: Atom:一个原子类型包括一个简单的原子值(字符串、数等),如:’alice’。 Tuple:一个元组类型由一些列字段组成,每个字段可以是任意类型,例如: (‘alice’,’laker

文档评论(0)

phltaotao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档