如何使用load命令在pig中的文件夹中加载多个文本文件?

时间:2014-05-13 03:23:35

标签: hadoop apache-pig

我一直用它来加载一个文本文件

A = LOAD '1try.txt' USING PigStorage(' ') as (c1:chararray,c2:chararray,c3:chararray,c4:chararray);

3 个答案:

答案 0 :(得分:4)

您可以使用文件夹名称而不是文件名,如下所示:

A = LOAD 'myfolder' USING PigStorage(' ') 
    AS (c1:chararray,c2:chararray,c3:chararray,c4:chararray);

Pig将加载指定文件夹中的所有文件,如Programming Pig中所述:

  

指定要从HDFS读取的“文件”时,可以指定目录。在这种情况下,Pig将查找您指定的目录下的所有文件,并将它们用作该load语句的输入。因此,如果你今天有一个带有两个数据文件的目录输入,并且昨天在它下面,并且你指定输入作为要加载的文件,那么Pig将在今天和昨天作为输入读取。如果您指定的目录包含其他目录,那么也将包含这些目录中的文件。

答案 1 :(得分:1)

以下是官方pig文档的链接,指示您可以使用load语句加载目录中的所有文件: http://pig.apache.org/docs/r0.14.0/basic.html#load

  

语法:LOAD'数据' [使用功能] [AS架构];

     

其中:'数据':文件或目录的名称,单引号。如果指定目录名,则会加载目录中的所有文件。

答案 2 :(得分:0)

data = load '/FOLDER/PATH' using PigStorage(' ') AS (<name> <type>, ..);

OR

data = load '/FOLDER/PATH' using HBaseStorage();