非常新的直线和大数据的东西。
如何在shell脚本中使用直线中的列名。例如
ColNames=Emp_id,Emp_name,Emp_City
Tbl_name=Employee
DB_Name=HR_Dept
Select $ColNames from $Tbl_name.$DB_Name;
1.是否可以在直线/Hive中使用2。我可以把这个文件放在linux框中,比如columnsnamesonly.txt,然后用beeline from script调用这些值吗
Columnnamesonly.txt
empid,emp_name,emp_city
select $/tmp/colnamesonly.txt from Employee.hr_dept;
抱歉问了个基本问题。不管可能与否,我都找不到答案。
1条答案
按热度按时间cqoc49vn1#
如果我正确理解你的问题,那么,是的,你可以传递保存在文本文件中的变量**下面假设您已经在使用beeline运行配置单元。
将变量添加到新的hiverc文件
打开hiverc文件进行编辑。使用vim,这可能看起来像:
vim ~/.hiverc
通过为所需的每个变量添加一行来编辑文件:set hivevar:variable_name=column_one;
(如果您不熟悉vim,我建议您阅读一些基本资料或使用其他内容来编辑该文件)将文件保存到所需的任何路径。vim命令看起来像
:w filepath/newhivercfile
在配置单元脚本中调用变量编辑配置单元脚本,在需要时添加变量,例如:
SELECT ${variable_name} FROM table;
我们把这个存起来吧filepath/script.hql
用你的变量运行脚本!使用常规直线运行配置单元脚本,但添加:
-i filepath/newhivercfile
这会将配置单元指向在步骤1中创建的hiverc文件-f filepath/script.hql
这将运行您在步骤4中创建的配置单元脚本。总之,您的直线查询将如下所示:
beeline -i filepath/newhivercfile -u jdbc:hive2://hiveserver2.com:10000 $USER org.apache.hive.jdbc.HiveDriver -f filepath/script.hql