Sql 如何在配置单元中调用用户定义的函数?
我想编写一个依赖于传递到脚本中的参数的配置单元查询。这些参数可能需要我从未知数量的列中进行选择。 我想做的是让传递给脚本的参数之一是一个包含列名的字符串,由一些正则表达式(可能是逗号)分隔。 我一直在尝试使用拆分UDF将简单字符串转换为数组,并在查询中使用结果数组。 基本上,给定 A=“Foo,Bar” 我想去 B=[Foo,Bar] 然后可以进行查询,如从tablename中选择B[0]; 澄清:我正在尝试拆分我传入的一个变量 编辑: 我已经意识到理想情况下我不会这么做——有没有办法构造一个配置单元查询并将其传递进来 编辑2:Sql 如何在配置单元中调用用户定义的函数?,sql,hive,user-defined-functions,hiveql,Sql,Hive,User Defined Functions,Hiveql,我想编写一个依赖于传递到脚本中的参数的配置单元查询。这些参数可能需要我从未知数量的列中进行选择。 我想做的是让传递给脚本的参数之一是一个包含列名的字符串,由一些正则表达式(可能是逗号)分隔。 我一直在尝试使用拆分UDF将简单字符串转换为数组,并在查询中使用结果数组。 基本上,给定 A=“Foo,Bar” 我想去 B=[Foo,Bar] 然后可以进行查询,如从tablename中选择B[0]; 澄清:我正在尝试拆分我传入的一个变量 编辑: 我已经意识到理想情况下我不会这么做——有没有办法构造一个配
使用-e标志。这不是最好的做法,但我找不到其他方法来做到这一点。也许使用pig会是一个更好的选择。为什么不传递您想要选择的列的列表呢。例如,此脚本有一个变量列
INSERT OVERWRITE DIRECTORY 's3://dummy/dummy/'
select ${COLUMNS} from table;
使用CLI运行此命令时,只需传递要选择的列列表,如下所示
$> hive -f <path to script> -d COLUMNS=col1,col2,col3
$>hive-f-d COLUMNS=col1、col2、col3
嗯,,
恐龙这很有道理-看起来我有一些重构要做!谢谢