0

非常に単純なダミー問題を使用して、実際の問題を説明しましょう。入力: 1 2 3 4

出力: 1 4 9 16

すべての行を読み取り、数値を 2 乗するカスタム レデューサー process.php を作成します。しかし、square 関数は、utils.php などの他のファイルですぐに利用できます。

Hive クエリは次のようになります。

FROM (
  SELECT num1, num2 FROM input
)aa
SELECT TRANSFORM(num1, num2)
USING 'process.php' as num1,num2   ; 

Amazon AWS インフラストラクチャで試してみました。失敗。これに関するドキュメントはありません。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

問題の修正を見つけたので、私は自分の質問に答えています。「require_once」は確かにレデューサー スクリプトで許可されていますが、問題があります。

わかりやすくするためにファイルに名前を付けましょう...
reducer スクリプト: reducer.php
必要なファイル: utils.php

ケース 1 : reducer.php と utils.php が同じフォルダーにある場合
require_once('utils.php') が機能するだけです。

ケース 2 : reducer.php と utils.php が異なるフォルダーに
ある パスが A/reducer.php と A/B/utils.php であるとしましょう。require_once('B/utils.php') は必要ありません。実際、 require_once('B/utils.php') は機能しません。
理由: 「ファイルの追加」を介して追加されたすべてのファイルは、マッパー/リデューサーの同じディレクトリに配置されます。

于 2013-05-15T18:26:35.127 に答える