![]() |
1
21
Pig正在使用Hadoop文件glob实用程序处理您的文件名模式,而不是shell的glob实用程序。Hadoop记录在案
here
. 如您所见,Hadoop不支持范围的“..”运算符。在我看来,你有两个选择——要么写下
|
![]() |
2
31
正如ZJFFDU所说,路径扩展是由shell完成的。解决问题的一种常见方法是简单地使用pig参数(这是使脚本更具可恢复性的一种好方法): 壳牌:
猪:
|
![]() |
3
10
当我在脚本中创建文件glob时遇到了这个问题,然后将它作为参数传递到pig脚本中。 目前的答案都不适用于我的情况,但我确实找到了一个可能有帮助的一般答案。 在我的例子中,shell扩展正在发生,然后将其传递到脚本中——这会导致pig解析器出现完全的问题,这是可以理解的。 因此,只要用双引号将glob括起来,就可以保护它不被shell扩展,并按原样传递给命令。 不起作用:
将工作
我希望这能减轻一些人的痛苦和痛苦。 |
![]() |
4
6
因此,既然这样做有效:
但这不起作用:
但是,如果您想要一个跨越300天的日期范围,并且通过一个完整的列表来加载,那么至少说是不优雅的。我想出了这个办法,它奏效了。 假设您要将数据从2012-10-08加载到2013-02-14,您可以做的是
然后再过滤
|
![]() |
5
4
如果变量位于文件路径的中间,请指定子文件夹名称或对所有文件使用“*”。 |
![]() |
6
4
我发现这个问题是由Linuxshell引起的。Linux shell将帮助您扩展
到
然后你实际运行命令
但在
|
![]() |
7
4
多亏了戴夫·坎贝尔。 除此之外,有些答案是错误的,因为他们得到了一些选票。 以下是我的测试结果:
|
![]() |
8
1
可能您没有-这可以使用自定义加载UDF来完成,或者尝试重新考虑目录结构(如果您的范围主要是静态的,这将很好地工作)。 另外:pig接受参数,也许这对您有帮助(也许您可以做一个函数,将数据从一天内加载并合并到结果集,但我不知道是否可能) 编辑:也许编写生成日期列表(文件夹)的简单python或bash脚本是最简单的解决方案,您不必将其传递给pig,这应该可以很好地工作。 |
![]() |
9
1
对于Romain的答案,如果您只想参数化日期,shell的运行方式如下:
猪:
请注意报价。 |
![]() |
10
0
所以我想
你能粘贴错误日志吗? |
![]() |
hack-is-art · 应用于每个组属性的Pig拉丁极限运算符 7 年前 |
|
asdf · 使用Pig从文件中获取第二条记录 7 年前 |
![]() |
Harsh · 在pig中使用UDF时出现错误1070 7 年前 |
|
Noobpython · 将日期转换为星期名称和一天的一部分 7 年前 |
![]() |
Harshit Kakkar · 清管器,count array_元素 7 年前 |
![]() |
user1708054 · 基于字符串的筛选数据以任何单词/字符开头 7 年前 |