pig常用コマンド
6475 ワード
一、pig:
pigはHadoopに基づいて並列にデータストリーム処理を実行するエンジンを提供する。それはスクリプト言語を含み、Pig Latinと呼ばれる。(SQL同様)
二、Pig Latin:
1、コメント:
行:
複数行:/**//。
2、入出力:
ロード:ロードファイル。
using Pig Strage(',')
as(exchange、smbol、date、dividends);
//内蔵関数Pig Strage関数を使用して、セパレータを'と指定します。もう一つのロード関数はText Loaderです。
//asでデータをロードするモデルを指定します。
記憶:store変数into'出力ファイル'
出力:dump変数//印刷
3、関係操作:
foreach:表現のセットを受け入れて、レコードごとに適用します。たとえば、すべてのレコードを読み込み終わったら、アメリカとidの二つのフィールドだけを残します。
A=ロード'input'as(user:chararray,id:long,address:chararray)
B=foreach A generate user、id;
foreach文のUDF(カスタム関数)
Filter:
グループ×× by×× :
Order by:
Discinct:
ジョイン:
Limit:
4、カスタム関数UDF:
登録UDF:REGISTER'….jar';
defineコマンドとUDF:defineコマンドは、ユーザのJava UDFのための別名を定義するために使用できます。このように、ユーザーは、長いパケット名のフルパスを書く必要がなく、ユーザーのUDFの構造関数にパラメータを提供することもできます。
セット:pigスクリプトの前にセット**を追加します。このコマンドは、Pigスクリプトの先頭にjobのパラメータを設定できます。
三、例:
1、空の値を3つの演算子で置換します。
左のデータ全量表示
3、統合ファイルAとBのデータ:
4、ファイルを表す最初のフィールド(最初の列)$0
5、pig統計ファイルの語数:TOKENIZE
例:
1.txt;
https://blog.csdn.net/jameshadoop/article/details/24838915
転載先:https://www.cnblogs.com/Lee-yl/p/10932287.html
pigはHadoopに基づいて並列にデータストリーム処理を実行するエンジンを提供する。それはスクリプト言語を含み、Pig Latinと呼ばれる。(SQL同様)
二、Pig Latin:
1、コメント:
行:
複数行:/**//。
2、入出力:
ロード:ロードファイル。
using Pig Strage(',')
as(exchange、smbol、date、dividends);
//内蔵関数Pig Strage関数を使用して、セパレータを'と指定します。もう一つのロード関数はText Loaderです。
//asでデータをロードするモデルを指定します。
記憶:store変数into'出力ファイル'
出力:dump変数//印刷
3、関係操作:
foreach:表現のセットを受け入れて、レコードごとに適用します。たとえば、すべてのレコードを読み込み終わったら、アメリカとidの二つのフィールドだけを残します。
A=ロード'input'as(user:chararray,id:long,address:chararray)
B=foreach A generate user、id;
foreach文のUDF(カスタム関数)
Filter:
グループ×× by×× :
Order by:
Discinct:
ジョイン:
Limit:
4、カスタム関数UDF:
登録UDF:REGISTER'….jar';
defineコマンドとUDF:defineコマンドは、ユーザのJava UDFのための別名を定義するために使用できます。このように、ユーザーは、長いパケット名のフルパスを書く必要がなく、ユーザーのUDFの構造関数にパラメータを提供することもできます。
セット:pigスクリプトの前にセット**を追加します。このコマンドは、Pigスクリプトの先頭にjobのパラメータを設定できます。
三、例:
1、空の値を3つの演算子で置換します。
B = FOREACH A GENERATE ((col1 is null) ? -1 :col1)
2、外部接続JOIN:左のデータ全量表示
A = LOAD '1.txt' AS (col1:int , col2:chararray);
B = LOAD '2.txt' AS ( col1:int , col2:chararray);
C = JOIN A BY col1 LEFT , B BY col1;
DESCRIBE C;
DUMP C;
3、統合ファイルAとBのデータ:
A = LOAD 'A.txt';
B = LOAD 'B.txt';
C = UNION A,B;
DUMP C;
4、ファイルを表す最初のフィールド(最初の列)$0
5、pig統計ファイルの語数:TOKENIZE
--
cd hdfs:///
A = LOAD '/logdata/2012*/*/nohup_*' AS (name:chararray) ;
B = GROUP A BY name;
C = FOREACH B GENERATE group, COUNT(A);
D = ORDER C BY ($1);
E = FILTER D BY $1 > 200;
dump E;
--
A = LOAD'/logdata/20130131/*/*' AS (line: chararray) ;
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = group B by word;
D = foreach C generate COUNT(B), group;
E = ORDER D BY ($0);
F = FILTER E BY $0> 200;
DUMP F;
TOKENIZE関数:https://www.w3cschool.cn/apache_pig/apachupig_tokenize.例:
1.txt;
i am hadoop
i am hadoop
i am lucene
i am hbase
i am hive
i am hive sql
i am pig
pigコード:--load txt ,
a = load '1.txt' as (f1:chararray);
-- , ( ) ,
b = foreach a generate flatten(TOKENIZE(f1, ' '));
--
c = group b by $0;
--
d = foreach c generate group ,COUNT($1);
--
stroe d into '$out'
処理の結果: (i,7)
(am,7)
(pig,1)
(sql,1)
(hive,2)
(hbase,1)
(hadoop,2)
(lucene,1)
トッピング機能:--
e = order d by $1 desc;
-- top2
f = limit e 2;
--
stroe f into '$out'
6、pigネストサイクルhttps://blog.csdn.net/jameshadoop/article/details/24838915
転載先:https://www.cnblogs.com/Lee-yl/p/10932287.html