如果我在一堆*.tar.gz文件上运行Pig,PigStorage将处理解压缩,但tar中文件之间的标题行不会被处理.有一个简单的方法来处理这个?或者我是否必须编写自己的RecordReader?那会是什么样子?
您可以使用tar来动态清理标头.在Pig脚本中,执行以下操作:
--Call to tar that reads from stdin and outputs to stdout
DEFINE CLEANTAR `tar xvf - -O`;
--Now, remove tar headers from your data
cleaned = STREAM mydata THROUGH CLEANTAR;
Run Code Online (Sandbox Code Playgroud)
编辑:添加以下替代方案.
您还可以使用sed删除tar标头:
--Remove tar headers using sed
DEFINE CLEANTAR `sed 's/[^\n]*\o000//g'`;
--Now, remove tar headers from your data
cleaned = STREAM mydata THROUGH CLEANTAR;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
346 次 |
| 最近记录: |