2016-08-05 7 views
0

私は豚とハイブを初めて使うので、豚ロードストアを使ってhdfsに保存されたcsvファイルからハイブテーブルにデータをロードする必要があります。 そのため私はハイブの表に、私は豚のスクリプトを実行するたびにデータを上書きする必要が豚はLOADを使ってハイブのデータを上書きします

load_resource_csv = LOAD '/user/hadoop/emp.csv' USING PigStorage(',') 
AS 
(dates:chararray, 
    shipnode_key:chararray, 
    delivery_method:chararray, 

); 

STORE load_resource_csv 
INTO 'employee' 
USING org.apache.hive.hcatalog.pig.HCatStorer(); 

を使用しています。それはできますか?

+0

http://stackoverflow.com/questions/11110403/how-to-force-store-overwrite -hdfs-in-pig – abhiieor

+0

@abhiieor豚のスクリプトを使ってハイブテーブルのデータを上書きする必要があります。 – Freeman

+0

確実とハイブは、HDFSに保存されているデータのメタデータを定義するだけで、HDFSデータの変更もハイブテーブルに反映されます。 – abhiieor

答えて

1

使用fsシェルコマンド:fs -rm -f -r /path/to/dir

load_resource_csv = LOAD '/user/cloudera/newfile' USING PigStorage(',') 
AS 
(name:chararray, 
    skill:chararray 
); 

fs -rm -r -f /user/hive/warehouse/stack/ 

STORE load_resource_csv INTO '/user/hive/warehouse/stack' USING PigStorage(','); 

-------------- BEFORE --------------------------- 
$ hadoop fs -ls /user/hive/warehouse/stack/ 
-rwxrwxrwx 1 cloudera supergroup   22 2016-08-05 18:31 /user/hive/warehouse/stack/000000_0 

hive> select * from stack; 
OK 
bigDataLearner hadoop 

$ hadoop fs -cat /user/cloudera/newfile 
bigDataLearner,spark 

-------------- AFTER ------------------- 
$ hadoop fs -ls /user/hive/warehouse/stack 
Found 2 items 
-rw-r--r-- 1 cloudera supergroup   0 2016-08-05 18:56 /user/hive/warehouse/stack/_SUCCESS 
-rw-r--r-- 1 cloudera supergroup   21 2016-08-05 18:56 /user/hive/warehouse/stack/part-m-00000 

$ hadoop fs -cat /user/hive/warehouse/stack/* 
bigDataLearner,spark 

hive> select * from stack; 
OK 
bigDataLearner spark 
Time taken: 0.183 seconds, Fetched: 1 row(s) 
関連する問題