Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在配置单元中调用用户定义的函数?_Sql_Hive_User Defined Functions_Hiveql - Fatal编程技术网

Sql 如何在配置单元中调用用户定义的函数?

Sql 如何在配置单元中调用用户定义的函数?,sql,hive,user-defined-functions,hiveql,Sql,Hive,User Defined Functions,Hiveql,我想编写一个依赖于传递到脚本中的参数的配置单元查询。这些参数可能需要我从未知数量的列中进行选择。 我想做的是让传递给脚本的参数之一是一个包含列名的字符串,由一些正则表达式(可能是逗号)分隔。 我一直在尝试使用拆分UDF将简单字符串转换为数组,并在查询中使用结果数组。 基本上,给定 A=“Foo,Bar” 我想去 B=[Foo,Bar] 然后可以进行查询,如从tablename中选择B[0]; 澄清:我正在尝试拆分我传入的一个变量 编辑: 我已经意识到理想情况下我不会这么做——有没有办法构造一个配

我想编写一个依赖于传递到脚本中的参数的配置单元查询。这些参数可能需要我从未知数量的列中进行选择。 我想做的是让传递给脚本的参数之一是一个包含列名的字符串,由一些正则表达式(可能是逗号)分隔。 我一直在尝试使用拆分UDF将简单字符串转换为数组,并在查询中使用结果数组。 基本上,给定 A=“Foo,Bar” 我想去 B=[Foo,Bar] 然后可以进行查询,如从tablename中选择B[0]; 澄清:我正在尝试拆分我传入的一个变量

编辑: 我已经意识到理想情况下我不会这么做——有没有办法构造一个配置单元查询并将其传递进来

编辑2:
使用-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
嗯,,
恐龙

这很有道理-看起来我有一些重构要做!谢谢