基本语法:
alias = LOAD 'input_path' [USING loader_function] [AS schema];
- alias: 为加载的数据起一个别名,用于在脚本中引用这份数据。
- 'input_path': 外部数据的路径或位置。
- [USING loader_function]: 可选项,指定加载器函数,该函数负责解析外部数据。如果不指定,默认使用 PigStorage,适用于文本文件,可以通过逗号或其他分隔符切分字段。
- [AS schema]: 可选项,用于指定加载数据后的字段模式。
示例:
假设有一个逗号分隔的文本文件 input.txt 包含姓名(name)和年龄(age):
John,25
Jane,30
Bob,28
下面是一个加载数据的例子:
-- 使用逗号分隔的文本加载数据,并定义字段模式
data = LOAD 'input.txt' USING PigStorage(',') AS (name:chararray, age:int);
这里的 data 就是我们为加载的数据起的别名,它包含了两个字段:name 和 age,分别是字符数组和整数类型。
使用其他加载器:
如果数据不是逗号分隔的文本,你可以使用其他加载器,比如 TextLoader 或 JsonLoader,具体根据你的数据格式而定。
-- 使用 TextLoader 加载文本文件
data = LOAD 'input.txt' USING TextLoader AS (line:chararray);
-- 使用 JsonLoader 加载 JSON 格式的数据
json_data = LOAD 'input.json' USING JsonLoader AS (id:int, name:chararray, age:int);
字段模式(Schema):
通过字段模式,你可以为加载的数据定义字段名称和数据类型,这对于正确解释数据非常重要。在字段模式中,使用 AS 关键字来指定字段的名称和类型。
-- 定义字段模式
data = LOAD 'input.txt' USING PigStorage(',') AS (name:chararray, age:int);
在这个例子中,name:chararray 表示字段名为 name,数据类型为字符数组;age:int 表示字段名为 age,数据类型为整数。
通过适当选择加载器和定义字段模式,你可以有效地将外部数据加载到Apache Pig中进行后续的数据处理。
转载请注明出处:http://www.zyzy.cn/article/detail/11087/Apache Pig