当前课程知识点:大数据系统基础 >  4. 处理框架 >  授课视频 >  4.9Pig Latin语法

返回《大数据系统基础》慕课在线视频课程列表

4.9Pig Latin语法在线视频

4.9Pig Latin语法

下一节:4.10Pig Latin 嵌套数据类型

返回《大数据系统基础》慕课在线视频列表

4.9Pig Latin语法课程教案、知识点、字幕

下面我们看一下PIG LATIN的

基本语法是什么

回顾一下刚才例子里的

那个数据流

我们读了两个文件

对第一个文件做了Group by

然后做了一个generation

做了一个count

然后我们把两个数据源

Join在了一起

然后我们换了一个域来Group

然后最后我们对每一个Group

做了一个取前10的这么一个操作

这是我们的数据流

大家还记得在mapreduce里头

我们会把它写成个mapreduce

看起来非常的复杂

这个Latin代码要简单的很多

它基本上就是一步一步地

描述了这个数据流的这个图

先看头三步它是干什么

首先它读了一个文件

记着这是一个文件

它不是数据库的表

所以它仍然是一个非结构化的

我说这个文件它里头有三个域

那么它可以是空格 分格的

type分格的 逗号分格的

或者它本身就是一个

Hadoop里的()文件

它是有分格符的

我告诉它第一个域叫user

第二个域叫url 第三个域叫time

这个名字是

在这时候绑定在上面的

第二步我把它按照url

来group了一把

group的结果

放在这个数据集里头

叫做gVisits

然后这个数据集最有意思的是

这个数据集可以在这里用

所以我们看起来这个好像就是

它重新生成了这么一个表

但这个表就可以在这里用

所以这个生成的这个表里头

每一项我们生成的这样一个对

这个对里头第一个是一个url

第二个是一个count

这个count是由用户定义的

一个函数

至于怎么算

你用户可以在别处再把它定义上

反正它是一个技术

所以它生成的东西

就是一个这样的表

visitCounts这个表

就是有两个域

第一个域是url

第二个域是一个count

这是头三步

之后我们读了另一个文件

一样的

load了这个文件

这个也是一个半结构化的

或者是非结构化的文件

但是我们管第一类叫url

第二类叫category

第三类叫pRank

我们把它定义了三个名字

我们管这个新读进来的

叫urlInfo

然后我们用这个表和这个表

这是两个表的名字

urlInfo visitCounts

visitCounts urlInfo

我们把这两个表Join在一起

那怎么Join

我们是用这个表上的url这个域

和这个表上的url域

我们利用这两个域

把它Join在一起

这个Join这个操作在数据库里

很常见

那我就说两个url一样的

我就把它放在一行里

所以它生成了一个新的表

叫visitCounts

之后这个visitCounts

又是一个新的表

这个新的表我在这个

新的表group一下

我按照category来group一下

我等于把它重新地

排列了一下顺序

重新地分了一下组

之后我根据这个分好了组的

我对每一组foreach

对每一组我生成

我调用了这样的一个函数

这个也是一个用户定义的函数

这个函数涉及两个域

一个是计数

然后这个是总共做了多少个

所以它是每次取top ten

每次取前10个

然后它生成

所以这个topUrls这个东西

只生成了一列

这一列就是这个top

这个函数的输出

那么就是一个url

它每次只输出10个

对每一列只输出10个

所以这就是每一个category的

最后的topUrl

这个代码看起来

它就比较简单了

不能说非常简单

因为它毕竟不是(03:11)

但是它也比较简单

它跟我们刚才画的

那个数据流程图是非常接近的

它没有任何的实线

它只是告诉你

说我要从哪里读到哪些数据

我在哪些数据上做一些个

已经固定的操作

比如说叫Join

这个generate调一个函数

比如说叫foreach我再iterate一遍

整个再迭代一遍

或者我再group

按什么东西组合一遍

最后我们把这个结论存起来

这也是一个很简单的操作

那么看到这些个程序

它有几大特点

第一 它这个不是数据库

它操作是直接作用于文件的

你把文件读进来

你可以把文件的不同的域

动态的叫一个名字

你可以动态选择一个Schema

你不是绑死在

这个数据存储什么样

和你怎么把它读进来

读进来是什么样

这是你自己定义的

是在读的过程中生成的

这个Schema

而不是一个绑定的Schema

因此这个东西还是致力于

处理这里非结构化的数据的

而相比之下数据库

那么它因为它数据存储

就必须是按列存储的

这个或者是这个

它是按列的这样一个表格

它是有一个严格的Schema

这个数据库的这种

Schema的定义是非常的严格的

所以这个时候你不容易

把它变成另外一种数据格式

所以这种东西

它是针对维线操作

它是更适用于big data的

那么数据库里头还有一个问题

就是数据库里头一般来讲

它不让用户定义一些个函数

用户可直接

函数在数据库里你可以定义

但是这个东西都是用一些

很奇怪的方法来进去了

数据库一般来讲

还是跑的是(04:46)

但是这个pig里边

用户定义的函数就是一等公民

它叫UDFs

User Defined Functions

所以UDFs可以用于

各种构造的过程

你可以在load里头

就是说我怎么把一个文件

转化成我要的Schema

你可以在存的过程

你说我写进去的时候

我要把数据怎么转化

包括Group Filter Foreach

在这里头你都可以定义

这个数据进来之后

我是怎么处理它的

这个就像你定义

mapFunction的方式是一样的

所以你可以在任何的地方

你定义一个Function

然后这个Function里对数据

进行一个操作

然后再定它的标准的这种

像foreach 像group这样的

标准的操作符

所以你的函数是一个一等公民

它可以在任何地方

都跟它自定义的函数是一起动的

大数据系统基础课程列表:

1. 绪论

-授课视频

--什么是大数据

--大数据典型应用

--大数据的特点

--大数据技术体系

--大数据生态系统

--大数据技术挑战

--课程内容

-1. 绪论--Quiz 1

2.云计算

-授课视频

--2.1大数据和云计算关系概述

--2.2并行化理念

--2.3规模经济理念

--2.4从仓库规模计算机到云

--2.5云计算商业模式概述

--2.6云计算带来的价值

--2.7云计算的分类

--2.8虚拟化技术概述

--2.9计算虚拟化

--2.10网络虚拟化:基础

--2.11网络虚拟化:软件定义网络

--2.12软件定义网络实现

--2.13存储虚拟化:用户接口

--2.14存储虚拟化:分布式存储实现方式

--2.15虚拟化技术总结

--2.16OPENSTACK

--2.17云计算小结

-2.云计算--Quiz 2

3.文件存储

-授课视频

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-3.文件存储--Quiz3

4. 处理框架

-授课视频

--4.1大数据的处理框架

--4.2MapReduce编程模型

--MapReduce执行过程

--4.4MapReduce数据流

--4.5MapReduce性能优化与容错

--4.6Hadoop

--4.7MapReduce总结

--4.8Pig Latin

--4.9Pig Latin语法

--4.10Pig Latin 嵌套数据类型

--4.11Pig Latin 实现与优化

--Pig Latin 实现与优化(2)

--4.13类似框架

--4.14章节总结

-4. 处理框架--Quiz4

5.内存计算

-授课视频

--5.1内存计算概述

--5.2并行计算挑战

--5.3并行计算的局限性

--5.4大数据处理并行系统

--5.5内存计算需求

--5.6MapReduce文件传递数据

--5.7内存计算的可行性

--5.8内存层次的延迟

--5.9内存计算实例-spark

--5.10SPARK-RDD

--5.11大数据并行系统

--5.12Spark编程接口

--5.13Spark编程实例——Log挖掘

--5.14Spark编程实例——WorkCount

--5.15Spark实现技术

--5.16复杂的DAG示例

--5.17RDD性能的提高

--5.18Spark应用和生态环境

--5.19Spark的局限性

-5.内存计算--Quiz5

6. NoSQL

-授课视频

--NoSQL与Cassandra

--数据模型、接口、语言

--系统架构与Gossip协议

--一致性哈希与数据分区

--数据副本及一致性

--节点本地数据存储

-6. NoSQL--Quiz6

7. 流计算

-授课视屏

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-7. 流计算--Quiz7

4.9Pig Latin语法笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。