对于Beeline和bigdata东西非常陌生。
如何在Shell脚本的Beeline中使用列名。例如
ColNames=Emp_id,Emp_name,Emp_City
Tbl_name=Employee
DB_Name=HR_Dept
Select $ColNames from $Tbl_name.$DB_Name;
1。是否可以在Beeline / Hive和 2.我可以将文件放在Linux框中,让我们说columnnamesonly.txt并从Script
中调用beeline中的值Columnnamesonly.txt
empid,emp_name,emp_city
select $/tmp/colnamesonly.txt from Employee.hr_dept;
很抱歉出现基本问题。我不可能在任何地方找到答案。
答案 0 :(得分:0)
如果我正确理解了您的问题,那么可以,您可以传递保存在文本文件中的变量。 **以下假设您已经使用beeline来运行蜂巢。
将变量添加到新的hiverc文件
vim ~/.hiverc
set hivevar:variable_name=column_one;
(如果您不熟悉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