首页 > 解决方案 > 如何在配置单元中使用文件中的列名

问题描述

对直线和大数据的东西非常陌生。

如何在 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 框中吗,让我们说 columnsnamesonly.txt 并从脚本中调用直线中的值

Columnnamesonly.txt

empid,emp_name,emp_city

select $/tmp/colnamesonly.txt from Employee.hr_dept;

很抱歉这个基本问题。无论是否可能,我都无法在任何地方找到答案。

标签: shellhivebeeline

解决方案


如果我正确理解您的问题,是的,您可以传入保存在文本文件中的变量。**以下假设您已经在使用 beeline 运行 hive。

将变量添加到新的 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这将 hive 指向您在步骤 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


推荐阅读