如何在Hive中使用文件中的列名

时间:2018-08-23 18:44:41

标签: shell hive beeline

对于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;

很抱歉出现基本问题。我不可能在任何地方找到答案。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么可以,您可以传递保存在文本文件中的变量。 **以下假设您已经使用beeline来运行蜂巢。

将变量添加到新的hiverc文件

  1. 打开您的hiverc文件进行编辑。使用vim可能看起来像:vim ~/.hiverc
  2. 通过为每个变量添加一行来编辑文件:set hivevar:variable_name=column_one;(如果您不熟悉vim,建议阅读一些基本材料或使用其他方法来编辑文件)
  3. 将文件保存到所需的任何路径。 vim命令看起来像:w filepath/newhivercfile

在配置单元脚本中调用变量

  1. 编辑您的配置单元脚本,在需要的地方添加变量,例如:SELECT ${variable_name} FROM table;让我们将其保存在filepath/script.hql

使用变量运行脚本!

  1. 使用常规直线运行蜂巢脚本,但添加以下内容:
    1. -i filepath/newhivercfile,它会将配置单元指向您在步骤1中创建的hiverc文件。
    2. -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