Apache Pig - Menyimpan Data

Di bab sebelumnya, kita mempelajari cara memuat data ke Apache Pig. Anda dapat menyimpan data yang dimuat dalam sistem file menggunakanstoreoperator. Bab ini menjelaskan cara menyimpan data di Apache Pig menggunakanStore operator.

Sintaksis

Diberikan di bawah ini adalah sintaks dari pernyataan Store.

STORE Relation_name INTO ' required_directory_path ' [USING function];

Contoh

Asumsikan kita memiliki file student_data.txt dalam HDFS dengan konten berikut.

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.

Dan kami telah membacanya menjadi suatu relasi student menggunakan operator LOAD seperti yang ditunjukkan di bawah ini.

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

Sekarang, mari kita simpan relasi tersebut di direktori HDFS “/pig_Output/” seperti gambar dibawah.

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

Keluaran

Setelah menjalankan storepernyataan, Anda akan mendapatkan output berikut. Direktori dibuat dengan nama yang ditentukan dan data akan disimpan di dalamnya.

2015-10-05 13:05:05,429 [main] INFO  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.
MapReduceLau ncher - 100% complete
2015-10-05 13:05:05,429 [main] INFO  org.apache.pig.tools.pigstats.mapreduce.SimplePigStats - 
Script Statistics:
   
HadoopVersion    PigVersion    UserId    StartedAt             FinishedAt             Features 
2.6.0            0.15.0        Hadoop    2015-10-0 13:03:03    2015-10-05 13:05:05    UNKNOWN  
Success!  
Job Stats (time in seconds): 
JobId          Maps    Reduces    MaxMapTime    MinMapTime    AvgMapTime    MedianMapTime    
job_14459_06    1        0           n/a           n/a           n/a           n/a
MaxReduceTime    MinReduceTime    AvgReduceTime    MedianReducetime    Alias    Feature   
     0                 0                0                0             student  MAP_ONLY 
OutPut folder
hdfs://localhost:9000/pig_Output/ 
 
Input(s): Successfully read 0 records from: "hdfs://localhost:9000/pig_data/student_data.txt"  
Output(s): Successfully stored 0 records in: "hdfs://localhost:9000/pig_Output"  
Counters:
Total records written : 0
Total bytes written : 0
Spillable Memory Manager spill count : 0 
Total bags proactively spilled: 0
Total records proactively spilled: 0
  
Job DAG: job_1443519499159_0006
  
2015-10-05 13:06:06,192 [main] INFO  org.apache.pig.backend.hadoop.executionengine
.mapReduceLayer.MapReduceLau ncher - Success!

Verifikasi

Anda dapat memverifikasi data yang disimpan seperti yang ditunjukkan di bawah ini.

Langkah 1

Pertama-tama, buat daftar file dalam direktori bernama pig_output menggunakan ls perintah seperti yang ditunjukkan di bawah ini.

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

Anda dapat mengamati bahwa dua file dibuat setelah menjalankan store pernyataan.

Langkah 2

Menggunakan cat perintah, daftar isi dari file bernama part-m-00000 seperti gambar dibawah.

$ 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