Saya sangat baru mengenal babi dan saya tidak yakin harus mencari apa di Google karena hasil yang saya dapatkan tidak benar-benar menyelesaikan masalah saya.

Apa yang saya miliki adalah sekarang.

a = LOAD 'SOME_FILE.csv' using PigStorage(',') AS schema; 
C = FOREACH B GENERATE $0, $1,$2 ; 
STORE C into 'some storage' using PigStorage(';')

Yang ingin saya lakukan adalah menjalankan ini melalui for loop dan menyimpannya di file yang sama.

Bagaimana saya mencapai ini? Terima kasih. Dengan kata lain, saya memiliki SOME_FILE.csv, SOME_FILE_1.csv, SOME_FILE_2.csv dan seterusnya. Tetapi saya ingin menjalankannya melalui pernyataan FOREACH yang sama dan hanya menjalankan satu pernyataan STORE atau setidaknya menggabungkan hasilnya ke output yang sama.

Maaf jika saya tidak jelas dalam hal ini.

Katakanlah alih-alih 'SOME_FILE_*.csv', bagaimana cara saya menulis semuanya ke file yang sama? Dalam hal ini, jumlah file yang perlu saya proses lebih dari 3.

Terima kasih.

0
aceminer 14 Maret 2017, 05:55

2 jawaban

Jawaban Terbaik

Dengan asumsi file input Anda memiliki skema yang sama maka:

a = LOAD 'SOME_FILE.csv' using PigStorage(',') AS schema;
b = LOAD 'SOME_FILE_1.csv' USING PigStorage(',') AS schema;
c = LOAD 'SOME_FILE_2.csv' USING PigStorage(',') AS schema;

Anda dapat menggunakan UNION untuk menggabungkan input Anda

a_b_c = UNION a,b,c; 
C = FOREACH a_b_c GENERATE $0, $1,$2; 
STORE C into 'some storage' using PigStorage(';');
2
Rijul sahu 14 Maret 2017, 04:52

Anda dapat melakukannya dengan dua cara

 1.use glob function for uploading multiple csv in same directory from hdfs and
  1. menggunakan serikat

fungsi glob
buat direktori di hdfs dan letakkan semua SOME_FILE_*.csv di direktori yang dibuat di hdfs

hadoop dfs -mkdir -p /user/hduser/data

Letakkan csv di direktori yang dibuat di hdfs

hadoop dfs -put /location_of_file/some_files*.csv /user/hduser/data

hadoop dfs -ls /user/hduser/data

Goto grunt shell dari apache pig menggunakan

pig -x mapreduce

a = memuat '/user/hduser/data/{ SOME_FILE, SOME_FILE_1, SOME_FILE_2}.csv' menggunakan PigStorage(',') sebagai skema;

buang a;

0
Mahesh Gupta 18 Maret 2017, 06:52