Pig脚本路径匹配规则-Shell glob pattern

  • 时间:
  • 来源:互联网

对症下药真的很重要。
今天在写pig脚本时有一个简单的需求,需要批量输入某路径下部分指定路径下的文件。
Pig脚本中的路径变量应采用shell glob pattern匹配。
参考:
http://teaching.idallen.com/cst8207/13w/notes/190_glob_patterns.html
而Pig 语言中内置的MATCH函数则采用的是Java正则匹配规则。
参考:
https://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html
下面举例说明shell glob pattern 的几个简单规则:

例1:

想要读取以下路径的文件:
user/cris/date=20180801
user/cris/date=20180802
user/cris/date=20180803

%DECLARE INPUT_PATH 'user/cris/date=201808[1-3]'
input = LOAD '${INPUT_PATH}' USING Pigstorage('\t')

例2:

想要读取以下路径的文件:
user/cris/date=20180730
user/cris/date=20180802

%DECLARE INPUT_PATH 'user/cris/date=2018{0730,0802}'
input = LOAD '${INPUT_PATH}' USING Pigstorage('\t')

例3:

想要读取以下路径的文件:
user/cris/date=20180730(some_info)
user/cris/date=20180802(some_other_info)

%DECLARE INPUT_PATH 'user/cris/date=2018{0730,0802}*'
input = LOAD '${INPUT_PATH}' USING Pigstorage('\t')

本文链接http://element-ui.cn/news/show-576681.aspx