分享

hive中自定义UDF函数如何使用外部文件

leletuo2012 发表于 2016-3-25 10:46:49 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 12701
我定义了一个UDF函数A 现在这个函数A中使用了一个外部文件B 通过 add file 命令将这个文件B上传至hive后,然后执行使用这个函数A的SQL语句,出现了其他数据节点无法找到这个B文件的情况 我追踪过源码 发现add file添加的文件 会拷贝至本地一份(结果就出现其他数据节点找不到),有人说使用把B放到hdfs上,但实际上UDF中也取不到 除非定死fs.defaultFS这个参数 请高人指教

已有(3)人评论

跳转到指定楼层
Alkaloid0515 发表于 2016-3-25 11:14:46
但实际上UDF中也取不到 除非定死fs.defaultFS这个参数

把它写成变量,从函数里传递进去,楼主可以试试

回复

使用道具 举报

leletuo2012 发表于 2016-3-25 11:52:43
Alkaloid0515 发表于 2016-3-25 11:14
但实际上UDF中也取不到 除非定死fs.defaultFS这个参数

把它写成变量,从函数里传递进去,楼主可以试试
...

当做函数变量传递进去,跟写死没有区别
回复

使用道具 举报

Alkaloid0515 发表于 2016-3-25 12:18:57
leletuo2012 发表于 2016-3-25 11:52
当做函数变量传递进去,跟写死没有区别

写一个函数是没有区别的,调用的时候就有区别了,而且灵活了。
比如:
class M{
function a(x)
{
   string url=x;
}
}

调用的时候:你怎么写都是可以的
M.a("hdfs://...")

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条