Apache Pig - PigStorage ()

o PigStorage()função carrega e armazena dados como arquivos de texto estruturados. Leva um delimitador usando o qual cada entidade de uma tupla é separada como um parâmetro. Por padrão, leva‘\t’ como um parâmetro.

Sintaxe

Dada a seguir está a sintaxe do PigStorage() função.

grunt> PigStorage(field_delimiter)

Exemplo

Vamos supor que temos um arquivo chamado student_data.txt no diretório HDFS chamado /data/ com o seguinte conteúdo.

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.

Podemos carregar os dados usando a função PigStorage conforme mostrado abaixo.

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

No exemplo acima, vimos que usamos vírgula (‘,’)delimitador. Portanto, separamos os valores de um registro usando(,).

Da mesma forma, podemos usar o PigStorage() função para armazenar os dados no diretório HDFS conforme mostrado abaixo.

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

Isso armazenará os dados no diretório fornecido. Você pode verificar os dados conforme mostrado abaixo.

Verificação

Você pode verificar os dados armazenados conforme mostrado abaixo. Primeiro de tudo, liste os arquivos no diretório chamadopig_output usando ls comando como mostrado abaixo.

$ 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

Você pode observar que dois arquivos foram criados após a execução do Store declaração.

Então, usando o cat comando, liste o conteúdo do arquivo chamado part-m-00000 como mostrado abaixo.

$ 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