Apache Pig - Lưu trữ dữ liệu
Trong chương trước, chúng ta đã học cách tải dữ liệu vào Apache Pig. Bạn có thể lưu trữ dữ liệu đã tải trong hệ thống tệp bằng cách sử dụngstorenhà điều hành. Chương này giải thích cách lưu trữ dữ liệu trong Apache Pig bằng cách sử dụngStore nhà điều hành.
Cú pháp
Dưới đây là cú pháp của câu lệnh Store.
STORE Relation_name INTO ' required_directory_path ' [USING function];
Thí dụ
Giả sử chúng ta có một tệp student_data.txt trong HDFS với nội dung sau.
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.
Và chúng tôi đã đọc nó thành một mối quan hệ student sử dụng toán tử LOAD như hình dưới đây.
grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt'
USING PigStorage(',')
as ( id:int, firstname:chararray, lastname:chararray, phone:chararray,
city:chararray );
Bây giờ, chúng ta hãy lưu trữ mối quan hệ trong thư mục HDFS “/pig_Output/” như hình bên dưới.
grunt> STORE student INTO ' hdfs://localhost:9000/pig_Output/ ' USING PigStorage (',');
Đầu ra
Sau khi thực hiện store, bạn sẽ nhận được kết quả sau. Một thư mục được tạo với tên được chỉ định và dữ liệu sẽ được lưu trữ trong đó.
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!
xác minh
Bạn có thể xác minh dữ liệu được lưu trữ như hình dưới đây.
Bước 1
Trước hết, liệt kê các tệp trong thư mục có tên pig_output sử dụng ls lệnh như hình dưới đây.
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
Bạn có thể thấy rằng hai tệp được tạo sau khi thực hiện store tuyên bố.
Bước 2
Sử dụng cat lệnh, liệt kê nội dung của tệp có tên part-m-00000 như hình bên dưới.
$ 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