使用Unix Shell脚本配置Hive Table DDL

时间:2018-11-14 11:12:18

标签: unix hive

我是Unix的新手,需要一些帮助。 我有以下格式的Excel文件。

表,列,数据类型,输入格式

TableA,col1,int,TEXTFILE

TableA,col2,string,TEXTFILE

TableA,col3,float,TEXTFILE

TableA,col4,int,TEXTFILE

TableB,col1,string,TEXTFILE

TableB,col2,int,TEXTFILE

TableB,col3,int,TEXTFILE

同样,我有100张桌子的记录。

我需要使用Unix为所有这100个表创建配置单元表的ddl语句。

例如:

create table TableA(col1 int ,col2 string,col3 float,col4 int) STORED AS TEXTFILE;

create table TableB(col1 string ,col2 int,col3 int) STORED AS TEXTFILE;

能帮我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以准备awk脚本

awk  -F ',' '{ 
                 a[$1] = a[$1] " " $2 " " $3 ","; #read the column/dtype into array
                 b[$1] = $4 ;                     #read the file format
         }END{
              for (i in a ) #loop through the concatenated string
              { gsub(/,$/, ")" ,a[i] );           #replace last comma with ")"
                      print "CREATE TABLE " i " (" a[i] " STORED AS " b[i] ;
                  } 
                }' filename