gpt4 book ai didi

hadoop - 使用 PigLatin (Hadoop) 加载多个文件

转载 作者:可可西里 更新时间:2023-11-01 14:50:15 25 4
gpt4 key购买 nike

我有一个具有相同格式的 csv 文件的 hdfs 文件列表。我需要能够 LOAD 它们与 pig 一起。例如:

/path/to/files/2013/01-01/qwe123.csv
/path/to/files/2013/01-01/asd123.csv
/path/to/files/2013/01-01/zxc321.csv
/path/to/files/2013/01-02/ert435.csv
/path/to/files/2013/01-02/fgh987.csv
/path/to/files/2013/01-03/vbn764.csv

它们不能被全局化,因为它们的名字是“随机”哈希,它们的目录可能包含更多的 csv 文件。

最佳答案

正如其他评论中所建议的,您可以通过预处理文件来做到这一点。假设您的 HDFS 文件名为 file_list.txt,那么您可以执行以下操作:

pig -param flist=`hdfs dfs -cat file_list.txt | awk 'BEGIN{ORS="";}{if (NR == 1) print; else print ","$0;}'` script.pig

awk 代码去掉了换行符并使用逗号分隔文件名。

在您的脚本中(在我的示例中称为 script.pig),您应该使用参数替换来加载数据:

data = LOAD '$flist';

关于hadoop - 使用 PigLatin (Hadoop) 加载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18277533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com