0

Windows で Hadoop の HDInsight インストールを使用しており、パラメーターを pig スクリプトに渡そうとしています。さまざまなマシンでいくつかのスクリプトを使用したので、Windows のものである可能性があります。スクリプト内でパラメーターが機能することを確認するために、デフォルト値を入力しました

スクリプト例:

%default myParam 'foo'
load('$myParam');

コマンドラインから test への予行演習として実行: pig -r testSub.pig

結果:

load('foo');

ただし、コマンドラインから値を指定しようとしています:

pig -p myParam=bar -r testSub.pig

エラーをスローします:

2013-04-23 13:37:27,531 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line.
Details at logfile: C:\Hadoop\hadoop-1.1.0-SNAPSHOT\logs\pig_1366720647495.log

そしてログファイルは同じことを言います:

Error before Pig is launched
----------------------------
ERROR 2999: Unexpected internal error. Encountered unexpected arguments on command line - please check the command line.

java.lang.RuntimeException: Encountered unexpected arguments on command line - please check the command line.
    at org.apache.pig.Main.run(Main.java:500)
    at org.apache.pig.Main.main(Main.java:111)
================================================================================

「-param」を使用して、物事を一重引用符と二重引用符で囲み、順序を移動しようとしましたが、うまくいきませんでした。次に何を試すかについてのアイデアはありますか? Windows コマンド プロンプトに追加する必要がある奇妙なエスケープはありますか?

4

2 に答える 2

0

HDInsight の 0.4 リリース (3 月 25 日) 以降、同じ問題が発生しています。また、パラメーター値をスクリプトに直接入力して、スクリプトを検証しました (正常に動作しています)。したがって、それはおそらく「Windows」のものです。1 つの回避策は、パラメーター ファイル (myparamfile.txt) にパラメーターを配置し、次のように参照することです。

    > pig -f testsub.pig -m myparamfile.txt
于 2013-05-03T12:17:43.237 に答える
0

-p 引数は問題ありません。次のように指定する必要があります-x local -r -f <file>

> pig -p myParam=bar -x local -r -f testSub.pig

この-x localフラグは、mapreduce クラスターなしでローカルで実行するように pig に指示します。

于 2013-04-23T13:58:26.090 に答える