0

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

输出:1 4 9 16

我会编写一个自定义reducer process.php,它将读取每一行并对数字进行平方。但是 square 函数在其他一些文件中很容易使用让我们说 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 基础设施上尝试过。没有成功。没有关于此的文档。任何帮助表示赞赏。谢谢。

4

1 回答 1

0

当我找到解决问题的方法时,我正在回答我自己的问题。在减速器脚本中确实允许使用“require_once”,但有一个问题。

为了清楚起见,让我为文件命名......
减速器脚本: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') 不起作用。
原因:通过“添加文件”添加的所有文件最终都位于映射器/减速器的同一目录中。

于 2013-05-15T18:26:35.127 回答