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