当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Apache Pig PigStorage()用法及代码示例



这个PigStorage()函数将数据加载和存储为结构化文本文件。它需要一个分隔符,使用它分隔元组的每个实体作为参数。默认情况下,需要‘\t’作为参数。

用法

下面给出的是PigStorage()函数。

grunt> PigStorage(field_delimiter)

示例

假设我们有一个名为的文件student_data.txt在名为的 HDFS 目录中/data/有以下内容。

001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata 
003,Rajesh,Khanna,9848022339,Delhi  
004,Preethi,Agarwal,9848022330,Pune 
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai.

我们可以使用 PigStorage 函数加载数据,如下所示。

grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt' USING PigStorage(',')
   as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );

在上面的例子中,我们已经看到我们使用了逗号(‘,’)分隔符。因此,我们使用分隔记录的值(,)

同理,我们可以使用PigStorage()函数将数据存储到 HDFS 目录中,如下所示。

grunt> STORE student INTO ' hdfs://localhost:9000/pig_Output/ ' USING PigStorage (',');

这会将数据存储到给定的目录中。您可以验证数据,如下所示。

确认

您可以验证存储的数据,如下所示。首先列出目录下的文件pig_output使用ls命令如下图。

$ hdfs dfs -ls 'hdfs://localhost:9000/pig_Output/'
 
Found 2 items 
rw-r--r- 1 Hadoop supergroup 0 2015-10-05 13:03 hdfs://localhost:9000/pig_Output/_SUCCESS
 
rw-r--r- 1 Hadoop supergroup 224 2015-10-05 13:03 hdfs://localhost:9000/pig_Output/part-m-00000

可以观察到执行后创建了两个文件Store陈述。

然后,使用cat命令,列出名为的文件的内容part-m-00000如下所示。

$ hdfs dfs -cat 'hdfs://localhost:9000/pig_Output/part-m-00000'
  
1,Rajiv,Reddy,9848022337,Hyderabad  
2,siddarth,Battacharya,9848022338,Kolkata  
3,Rajesh,Khanna,9848022339,Delhi  
4,Preethi,Agarwal,9848022330,Pune  
5,Trupthi,Mohanthy,9848022336,Bhuwaneshwar 
6,Archana,Mishra,9848022335,Chennai

相关用法


注:本文由纯净天空筛选整理自 Apache Pig - PigStorage()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。