Hive で map 句を使用しようとしていますが、構文につまずいており、ユース ケースの例があまり見つかりません。以前、外部スクリプトを使用してテーブルの列の 1 つを処理する必要があったときに map 句を使用しました。
たとえば、という名前の python スクリプトがありました。これは、run
1 つのコマンド ライン パラメータを取り、スペースで区切られた 3 つの値を吐き出します。だから私はちょうどやった:
FROM(MAP
tablename.columnName
USING
'run' AS
result1, result2, result3
FROM
tablename
) map_output
INSERT OVERWRITE TABLE results SELECT *;
今、私はより多くのパラメータを受け取り、うまくいかず、これに関する例を見つけることができなかったいくつかのことを試したpythonスクリプトを持っています. 私は明らかなことをしました:
FROM
(MAP
numAgents, alpha, beta, burnin, nsteps, thin
USING
'runAuthorityMCMC' AS numAgents, alpha, beta, energy, avgDegree, maxDegree, accept
FROM
parameters
) map_output
INSERT OVERWRITE TABLE results SELECT *;
しかし、エラーが発生しましA user-supplied transfrom script has exited with error code 2 instead of 0.
た を実行するrunAuthorityMCMC
と、そのテーブルからサンプリングされた 6 つのコマンド ライン パラメーターを使用して、完全に正常に動作します。
パラメータをまったく渡さずにスクリプトを実行しようとしているようです。エラー メッセージの 1 つで、このような場合に期待したとおりの出力が得られました。私がやろうとしていることをするための正しい構文は何ですか?
編集:
確認中 - これはエラー メッセージの一部です。
usage: runAuthorityMCMC [-h]
numAgents normalizedBrainCapacity ecologicalPressure
burnInSteps monteCarloSteps thiningRatio
runAuthorityMCMC: error: too few arguments
これは、引数が少なすぎる場合に期待する出力です。スクリプトは 6 つの引数を取る必要があります。