Pigプログラミング:HDFSモードのUDFを使用したApache Pigスクリプト



Pigプログラミング:HDFSモードのUDFを使用したApachePigスクリプト。これは、HDFSモードでUDFを使用してApachePigスクリプトを実行するためのブログ投稿です...

以前のブログ投稿では、どのように始めるかを見ました Pigプログラミングとスクリプト 。を書くための手順を見てきました HDFSモードのPigスクリプト そして UDFなし。このシリーズの第3部では、Pigスクリプトを作成する手順を確認します。 HDFSモードのUDF

Pig組み込み関数の機能を説明する組み込み関数を作成して、PigUDFを実装する方法を説明しました。説明をわかりやすくするために、2つの組み込み関数を使用しました。これは、pigスクリプトを使用して行いました。





ここでは、1つの例を取り上げ、UDF(ユーザー定義関数)の両方を使用しました。つまり、大文字で文字列を作成し、値を取得してそのパワーを上げます。

この例で使用するデータセットを以下に示します。



table

私たちの目的は、1列目の文字を大文字にし、3列目の値で2列目のパワーを上げることです。

各UDFのJavaコードを書くことから始めましょう。また、コンパイルエラーを回避するために、Javaプロジェクトで4つのJARを構成する必要があります。
まず、Javaプログラムを作成します。どちらも以下のとおりです。



Upper.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings( 'deprecation')public class Upper extends EvalFunc {public String exec(Tuple input)throws IOException {if(input == null || input.size()== 0)return null tr​​y {String str =(String)input.get(0)str = str.toUpperCase()return str} catch(Exception e){throw WrappedIOException.wrap( 'キャッチされた例外処理入力行'、e)}}}

Power.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow extends EvalFunc {public Long exec(Tuple input)throws IOException {try { int base =(Integer)input.get(0)int exponent =(Integer)input.get(1)long result = 1 / *おそらく最も効率的な方法ではありません... * / for(int i = 0 i result) {//オーバーフローしました。警告を出しますが、//例外をスローしないでください。 warn( 'Overflow!'、PigWarning.TOO_LARGE_FOR_INT)// nullを返すと、失敗したことをPigに示しますが、//実行を続行します。 return null}} return result} catch(Exception e){//例外をスローすると、タスクが失敗します。新しいIOException( '何か悪いことが起こった!'、e)}}}をスローします。

コンパイルエラーを削除するには、構成する必要があります 4つのJAR 私たちのJavaプロジェクトで。


[ダウンロード]ボタンをクリックして、JARをダウンロードします

[buttonleads form_title =”ダウンロードコード” redirect_url = https://edureka.wistia.com/medias/wtboe1hmkr/download?media_file_id = 76900193course_id = 166button_text =”ダウンロードJAR”]

ここで、両方のJavaコードのJARファイルをエクスポートします。 JARの作成については、以下の手順を確認してください。

ここでは、1つのプログラムについて示しましたが、次のプログラムでも同じように進めます。

Javaの2進化10進数

JARとテキストファイルを作成した後、すべてのデータをHDFSクラスターに移動しました。これは次の画像で示されています。

データセットでは、フィールドはコンマ(、)で区切られています。

ファイルを移動した後、拡張子が.pigのスクリプトを作成し、そのスクリプトファイルにすべてのコマンドを配置しました。

ターミナルで、PIGに続けて、次の画像に示されているスクリプトファイルの名前を入力します。

ここで、これはpigスクリプトを実行するための出力です。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。

関連記事:

ApachePigでUDFを作成する手順

ApacheHiveの概要