【发布时间】:2026-02-13 17:40:01
【问题描述】:
我一直用它来加载一个文本文件
A = LOAD '1try.txt' USING PigStorage(' ') as (c1:chararray,c2:chararray,c3:chararray,c4:chararray);
【问题讨论】:
标签: hadoop apache-pig
我一直用它来加载一个文本文件
A = LOAD '1try.txt' USING PigStorage(' ') as (c1:chararray,c2:chararray,c3:chararray,c4:chararray);
【问题讨论】:
标签: hadoop apache-pig
你可以用文件夹名代替文件名,像这样:
A = LOAD 'myfolder' USING PigStorage(' ')
AS (c1:chararray,c2:chararray,c3:chararray,c4:chararray);
Pig 将加载指定文件夹中的所有文件,如Programming Pig 所述:
指定要从 HDFS 读取的“文件”时,可以指定目录。在这种情况下,Pig 将查找您指定的目录下的所有文件,并将它们用作该加载语句的输入。因此,如果您有一个目录输入,其中包含今天和昨天的两个数据文件,并且您将输入指定为要加载的文件,那么 Pig 将读取今天和昨天作为输入。如果您指定的目录有其他目录,这些目录中的文件也会被包括在内。
【讨论】:
hadoop fs -ls 命令检查这一点。如果您的 Hadoop 用户名是“asiapac”,那么您可以使用主目录“ssamykannu”的相对路径或完整路径“/user/asiapac/ssamykannu”。路径“hdfs://localhost/user/asiapac/ssamykannu”也可以。
这里是官方 pig 文档的链接,表明你可以使用 load 语句来加载目录中的所有文件: http://pig.apache.org/docs/r0.14.0/basic.html#load
语法:LOAD 'data' [USING function] [AS schema];
其中:'data':文件或目录的名称,用单引号括起来。如果指定目录名,则加载目录中的所有文件。
【讨论】:
data = load '/FOLDER/PATH' using PigStorage(' ') AS (<name> <type>, ..);
或
data = load '/FOLDER/PATH' using HBaseStorage();
【讨论】: