gpt4 book ai didi

hadoop - hive - map 未将参数发送到自定义 map 脚本?

转载 作者:行者123 更新时间:2023-12-02 20:11:50 28 4
gpt4 key购买 nike

我正在尝试将map子句与Hive一起使用,但是我在语法上绊倒了,没有找到很多用例的例子。在不得不使用外部脚本处理表的列之一之前,我使用过map子句。

我有一个名为run的python脚本,它使用一个命令行参数并吐出三个以空格分隔的值。所以我只是做了:

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个命令行参数,它运行良好。

在我看来,它试图运行脚本而不传递任何参数。在这种情况下,在错误消息之一中,我得到的正是我期望的输出。做我想做的正确语法是什么?

编辑:

确认-这是错误消息的一部分:
usage: runAuthorityMCMC [-h]
numAgents normalizedBrainCapacity ecologicalPressure
burnInSteps monteCarloSteps thiningRatio
runAuthorityMCMC: error: too few arguments

正是我期望的参数很少的输出。该脚本应带有六个参数。

最佳答案

好的,也许这里的词汇有所不同,但是配置单元不会将值作为“参数”发送到脚本。它们是通过标准输入读取的(不同于将某些内容作为参数传递)。另外,您可以尝试将数据发送到/bin/cat,以便查看实际发送到配置单元的内容。如果我没记错的话,这些值将以制表符分隔,并且脚本发出的结果也将以制表符分隔。

尝试从脚本中的stdout(或stderr)打印内容,您将在jobtracker日志中看到结果。这将帮助您调试。

关于hadoop - hive - map 未将参数发送到自定义 map 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14084032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com