pig:从文件夹中加载特定的文件

2skhul33  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(721)

我的加载功能应该是敏感的文件的年龄,我只感兴趣的文件创建在过去1周和文件夹中有30天的文件。
我对pig还比较陌生,见过一些定制的loader,但是还没有找到一个限制文件加载的选项。
任何帮助都将不胜感激
谢谢

brjng4g3

brjng4g31#

不要试图在Pig的体内这样做。在bash脚本中使用参数替换。如果以本地模式在清管器中运行,则可以使用 find 获取文件的命令:


# !/bin/bash

DIR=/path/to/directory/of/input/files
pig -p input="{$(find $DIR -maxdepth 1 -type f -mtime -7 | tr '\n' ',')}" myscript.pig
``` `find $DIR` 查找中的所有文件 `$DIR` . `-maxdepth 1 -type f` 确保只考虑指定目录中的常规文件(无子目录)。 `-mtime -7` 将列表限制为在过去7天内修改的文件。 `tr '\n' ','` 将其转换为逗号分隔的列表。
然后,在 `myscript.pig` ,你会有这样的陈述 `data = LOAD '$input' AS (...);` 如果在集群上运行pig,则需要使用 `hdfs dfs -ls` 并对输出进行一些解析以获得文件名。

相关问题