3

phpSDKを使用してAWSEMRでハイブスクリプトを実行しようとしています。スクリプトパラメータ(入力、出力、作業する日付など)を渡すにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

私はJava SDKでこれを行いました。基本的にPHP SDKを使用する必要があるのは、add_job_flow_steps関数で必要なパラメーターを解析することです

関数を呼び出すときに、「Args」配列の StepConfig (実行中のスクリプト用) にパラメーターを追加する必要があります。

Args - string|array - Optional - A list of command line arguments passed to the JAR file’s main function when executed. Pass a string for a single value, or an indexed array for multiple values.

引数の形式は少しわかりにくいので、次の形式の配列が必要です。

("-d","yourVariable=その値","-d","anotherVariable=AnotherValue")

したがって、最終的には次のようになります。

 add_job_flow_steps('j-19430859jg9',array( new CFStepConfig(array(
'Name' => 'Run a hive script',
'HadoopJarStep' => array( 'Jar' => CFHadoopStep::run_hive_script(),
'Args' => array("-d","yourVariable=itsValue","-d","anotherVariable=AnotherValue")
))))

構文が完全に正しいかどうかはわかりません。試したことはありません。

少なくともこれは Java の場合です。PHP の場合は、関連付けられた配列が必要になる場合があります。さまざまな形式を試してみます。

これは、これらのパラメーターが他の Hadoop/Hive 構成パラメーターと混同されないようにするためだと思います。

その後、${yourVariable} を使用して、bash と同様の方法でスクリプト内のこれらの変数にアクセスできます。

SELECT * FROM TABLE WHERE column='${yourVariable};
于 2012-07-27T12:22:43.743 に答える
1

あなたもこれで悩んでいるなら…

変数をハイブ スクリプトに渡すためのサンプル コードは、次のAmazon フォーラム スレッドにあります。

于 2012-04-24T09:25:09.533 に答える