pig读取部分列 (全部列中的少部分列)
来源:互联网 发布:淘宝旺旺链接生成器 编辑:程序博客网 时间:2024/05/21 04:20
pig流式数据,load数据时,不能读入任意列。
但是,可以从头读,只能连续几列。就是前几列。比如10列数据,可以只读前3列。但不能读第3列:
如:数据testdata
[wizad@sr104 lmj]$ cat testdata.txt
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
pigscript读入:
my = load '/home/wizad/lmj/testdata.txt' using PigStorage(',')
as(one:chararray,
two:int);
describe my;
dump my;
结果为
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
结构为
grunt> describe my;
my: {one: chararray,two: int}
只读入其中两列。
如果想读入任意列,可以使用piggybank提供的hivecolumnarloader自行开发。
pig是java编写的,所以也可以自己写java的UDF,实现load时的格式 加载函数loadfunc,逐行读入时,只留下其中任意列。就可以了。
如下两个
pig自身的:
DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader();
自己编写的:
DEFINE SequenceFileLoader com.vpon.wizad.etl.pig.SequenceFileCSVLoader();
- pig读取部分列 (全部列中的少部分列)
- EF 如何更新部分列
- pandas遍历文件夹提取单个文件中的部分列集合
- zend framework 插入数据表 部分字段列
- SQL*LOADER选择性导入csv部分列
- mongodb查询部分满足条件的列
- GridControl设置部分列可编辑
- task0001第六部分之两列布局
- task0001第六部分之三列布局
- Oracle查询某一列的重复部分
- python 读取oracle 数据,并写入Excel, 加密保护Excel,部分列数据可编辑,其他列数据为只读
- powerbuilder 读取excel报表中的隐藏列
- C#中的访问修饰符 部分类 密封类 序列化 反序列化
- JQuery_利用JQuery实现对表格中的部分列实现隐藏
- C#读取Excel表中同一列数据类型不同时,读取到的部分数据为空
- 读取列名
- 数据库读取某一列
- scala读取指定列
- Java中求字符串长度length()和codePointCount()的区别
- 算法:C语言实现第三章第一节学习笔记
- Hdu 2579 Dating with girls(2) && hdu 2653 Waiting ten thousand years for Love【Bfs】
- hdu4973 A simple simulation problem.(多校第十场1003)
- 过滤器与拦截器的区别
- pig读取部分列 (全部列中的少部分列)
- NSData与各个类型之间的转换
- SVM中的对偶问题、KKT条件以及对拉格朗日乘子求值得SMO算法
- TKP(BFS)
- iOS中创建,使用动态库(dylib)
- excellent website for programmers
- printf()函数
- ASCII码表
- 风云