hive转换:无法初始化自定义脚本

yhuiod9q  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(396)

我试图通过将python脚本作为Map器输入来测试hive转换。我的Hive脚本是:

add file  /full/path/to/mapper.py;

set mapred.job.queue.name=queue_name;

use my_database;

select transform(s.year, s.month, s.day, s.hour) 
using 'mapper.py' 
from my_table s limit 10;

我的pythonMap器脚本只是想回显输入:


# !/usr/local/bin/python

import sys
for line in sys.stdin:
    print line

我已尝试使用以下组合运行此程序:
卸下 add file ... 在配置单元脚本中,并提供 mapper.pyselect ... 声明
保持 add file ... 以及mapper的完整路径: /path/to/mapper.py 保持 add file ... 以及Map器的相对路径: ./mapper.py 尝试使用选择Map器输出 AS 条款( using 'mapper.py' as line )
到目前为止,上述所有尝试都导致配置单元报告无法初始化我的自定义脚本:

FAILED: Execution Error, return code 20000 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Unable to initialize custom script.

我不能理解这个“初始化”的本质。hive不能吗
找到我的脚本(即路径问题)?
找到python可执行文件(即 #! (谢邦)
我正在遵循配置单元教程中的“自定义Map/减少脚本”。

cnwbcb6i

cnwbcb6i1#

通过修改我的 select... 声明为

add file  /full/path/to/mapper.py;
select transform(s.year, s.month, s.day, s.hour) 
using ' python mapper.py' --<--- This line changed
from my_table s limit 10;

参考岗位

相关问题