在蜂巢中,php自定义reducer可以包含另一个php文件吗?

时间:2013-05-15 11:11:36

标签: hive

让我用一个非常简单的假问题解释实际问题。 输入: 1 2 3 4

输出: 1 4 9 16

我会写一个自定义的reducer process.php,它会读取每一行并对数字进行平方。但是方形函数很容易在其他文件中提供,比如utils.php我可以不做类似的事情 process.php中的require_once('utils.php')

Hive查询看起来像这样:

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

我在亚马逊AWS基础架构上尝试过这样做。没有成功。没有关于此的文档。 任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

我正在回答我自己的问题,因为我找到了解决问题的方法。确实允许在reducer脚本中使用“require_once”,但是有一个catch。

让我为文件命名以便清楚...
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('utils.php')就行了。不需要require_once('B / utils.php'),实际上require_once('B / utils.php')不起作用。
原因:通过'添加文件'添加的所有文件最终都在mapper / reducer的同一目录中。