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