Pig store用法举例】的更多相关文章

store:将数据存储到HDFS等文件系统里   将数据保存到/data目录 store data into '/data'; 以逗号为分隔符 store data into '/data' using PigStorage(',');  …
jnd = join a by f1, b by f2;   join操作默认的是内连接,只有两边都匹配才会保留   需要用null补位的那边需要知道它的模式: 如果是左外连接,需要知道右边的数据集的模式,不匹配的字段用null补位 如果是右外连接,需要知道左边的数据集的模式,不匹配的字段用null补位 如果是全外连接,需要知道两边的数据集的模式,不匹配的字段用null补位   触发reduce阶段   基本用法 a = load 'input1'; b = load 'input2'; jnd…
    group语句可以把具有相同键值的数据聚合在一起,与SQL中的group操作有着本质的区别,在SQL中group by字句创建的组必须直接注入一个或多个聚合函数.在Pig Latin中group和聚合函数之间没有直接的关系.     group关键字正如它字面所表达的:将包含了特定的键所对应的值的所有记录封装到一个bag中,之后,用户可以将这个结果传递给一个聚合函数或者使用它做其他一些处理.       触发reduce阶段   数据文件内容如下: [hadoop@vm1 ~]$ cat…
users = load '/users.data' using PigStorage() as (name:chararray, age:int, address:chararray);   load 'xx':     1)xx可以是文件,也可以是文件夹.如果是文件夹,则文件夹下的所有文件(包括子文件夹)都作为输入文件.     2)xx可以是匹配字符,参考Hadoop的globStatushttp://hadoop.apache.org/docs/current/api/org/apach…
some = sample data 0.1   遍历整个数据集,获取指定比例的行数的数据,获取的数据不确定,条数也不准确.   内部重写为filter data by random() <= 0.1     抽取100行数据 data = load 'data'; grpd = group data all; sums = foreach grpd generate COUNT(data) as c; some = sample data 100/(double)sums.c;  …
lmt = limit data 10;   只获取指定条数的数据,不能保证每次得到的结果一致,先执行order再limit可以保证一致.   输入数据全部载入.   会触发reduce阶段   a = load 'a.txt'; b = group a all; c = foreach b generate COUNT(a) as sum; d = order a by $0; e = limit d c.sum/100;    …
dst = distinct data:   DISTINCT只能对整个记录(整行)去重,不能在字段级别去重.   触发reduce阶段   data = load 'data'; distinct data;  …
filter:过滤数据,只有符合特定条件的数据才会被保留下来,然后进入下一个数据流.   1)等值比较 filter data by $0 == 1 filter data by $0 != 1   2)字符串 正则匹配  JAVA的正则表达式 字符串以CM开头 filter data by $0 matches 'CM.*'; 字符串包含CM filter data by $0 matches '.*CM.*'; 3)not filter data by not $0==1; filter d…
foreach:一行一行的遍历数据,处理一行的数据,然后返回一个tuple. users = load '/users.data';   1)别名引用 f = foreach users generate name, age;   2)位置引用 f = foreach users generate $0, $1; 3)字段区间 .. 从name字段开始到最后一个字段 f = foreach users generate name.. 从第一个字段开始到age字段 f = foreach user…
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素 2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数 3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同) set模板原型://Key为…
awk 里的substr函数用法举例: 要截取的内容:2007-08-04 04:45:03.084 - SuccessfulTradeResult(status: 1, currencyPair: 'USDJPY', tradeId: '17389681', clientReference: '20070803COVR00013176', tradeDateTime: '2007-08-03T19:45:02', dealerUserId: 'PANTARHEI.API1', clientNa…
nc命令用法举例 什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 (3)机器之间传输文件 (4)机器之间网络测速                                                                    …
java5线程框架Executor的用法举例 Executor 是 java5 下的一个多任务并发执行框架(Doug Lea),可以建立一个类似数据库连接池的线程池来执行任务.这个框架主要由三个接口和其相应的具体类组成.Executor. ExecutorService 和 ScheduledExecutorService . 1. Executor 接口:是用来执行 Runnable 任务的:它只定义一个方法- execute(Runnable command):执行 Ruannable 类型…
java8中的localdate和localtime用法举例如下:这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下: // 01. java.util.Date --> java.time.LocalDate…
sql的游标用法举例 ), ) Declare authors_cursor Cursor For Select Name,TrueName From Account Open authors_cursor Fetch Next From authors_cursor INTO @Name, @TrueName Begin ),@@FETCH_STATUS) Fetch Next From authors_cursor INTO @Name, @TrueName End Close author…
sorted = order data by $0;   数值类型按照数值大小比较 chararray类型按照字符的字典顺序比较 bytearray按照字节的字典顺序比较 复杂类型(map.tuple.bag)不能比较 null是最小的   触发reduce阶段 sorted = order data by $0; sorted = order data by $0 desc, $1 asc; order by是全局排序,有reduce阶段,有可能产生数据倾斜,为解决这个问题,Pig在shuff…
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男'          WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数…
1  yield基本用法 典型的例子: 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.1 2 3 5 8…… def fab(max): n, a, b = 0, 0, 1 while n < max: yield b # print b a, b = b, a + b n = n + 1 yield 的作用就是把一个函数变成一个generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个…
CHOICES常用做单选属性,下面举例在django models中人物性别的用法: 我们先定义一个模型,名字为Students ,这个Students 包含了名字和性别两个字段,代码如下: from django.db import models class Students(models.Model): GENDER_CHOICES = ( (u'M', u'Male'), (u'F', u'Female'), ) name = models.CharField(max_length=60)…
关于sshpass 背景 在Linux后台中,经常会用到ssh.scp等命令.需要进行认证,手动输入密码,是交互式的过程. 当将ssh.scp等命令做成自动化脚本时,可能需要非交互式的登录过程,此时可以用sshpass. 使用举例 使用-p参数指定登录密码 # 免密码登录 $ sshpass -p password ssh username@host # 远程执行命令 $ sshpass -p password ssh username@host <cmd> # 通过scp上传文件 $ ssh…
Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 1.collections模块基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 2.deque: 双端队列,可以快速…
toggle用法是使得两个以上的方法交替出现. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h…
sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上.还可以对原文件改动,但是不会再屏幕上返回结果 sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上.还可以对原文件改动,但是不会再屏幕上返回结果. s…
python join 和 split方法: join用来连接字符串,split恰好相反,拆分字符串的. 来看有关join.split方法的例子 1,join用法的例子 复制代码 代码示例: >>>li = ['my','name','is','bob'] >>>' '.join(li) 'my name is bob'   >>>'_'.join(li) 'my_name_is_bob'   >>> s = ['my','name'…
1. substr() 2. replace() 例子:split() 字符串切割: substr 函数原型: , size_t n = npos ) const; 解释:抽取字符串中从pos(默认为0)开始,长度为npos的子字串 #include <iostream> #include <string> using namespace std; int main() { string s = "hello"; cout << s.substr()…
最近工作,发现在Extjs中自定义Store的功能挺多,特意在此做笔记,几下来,具体代码如下: 1.定义Store //定义Store var ItemSelectorStore = new Ext.data.ArrayStore({ fields: [ { name: 'BaseInfoId' }, { name: 'Title' } ] }); 2.根据Grid的数据,循环往Store里面插 var selectedData = InfoCollectionGrid.getSelection…
什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 (2)端口的扫描,nc可以作为client发起TCP或UDP连接 (3)机器之间传输文件 (4)机器之间网络测速 nc的控制参数不少,常用的几个参数如下所列: 1) -l 用于指定nc将处于侦听模式.指定该参数,则意味着nc被当作server,侦听并接受连接,而非向…
nvl(exp1,exp2):                           如果exp1为空,则返回exp2:否则返回exp1nvl2(exp1,exp2,exp3):                 如果exp1为空,则返回exp3:否则返回exp2nullif(exp1,exp2):                         如果exp1等于exp2,则返回空:否则返回exp1coalesce(exp1,exp2.....expn):     返回列表中第1个不为空的值,如果全…
举例1: 使用该查询,得出iFavoriteID,iFavUserType ,cUser,iArticleID,dFavoriteTime五个字段的值: SELECT iFavoriteID,CASE WHEN iFavUserType = 0 THEN '新闻管理员'WHEN iFavUserType = 1 THEN '商家'WHEN iFavUserType = 2 THEN '会员'END AS iFavUserType, cUser, iArticleID,CONVERT(nvarch…
我们知道在操作文件对象的时候可以这么写 with open('a.txt') as f: '代码块' 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法 使用举例 import shelve class ShelveUtil(object): """ 使用Shelve存储提取对象 """ def __init__(self, file): self.file_n…