Hive Table DDL с использованием сценария оболочки Unix - PullRequest
0 голосов
/ 14 ноября 2018

Я новичок в 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 таблиц.

Мне нужно создать оператор ddl для создания таблицы улья для всех этих 100 таблиц с использованием unix.

Например:

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 голосов
/ 14 ноября 2018

Вы можете подготовить сценарий 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...