CREATE TABLE с различными разделителями в улье и импале - PullRequest
0 голосов
/ 04 ноября 2019

Мне нужна твоя помощь со столом в Ульях и Импале. Моя проблема в том, что мне нужно вставить следующие данные:

   HD_4K;Number_Channel;ID_Channels;Type;Name_Channel; 

   4K; 45; "1;2;3;4;5;6" ; Series ; Channel 1;  

   HD; 24; "1;6"; Film; Channel 2; 

Я хочу разделить поля с помощью ";"но поле "ID_CHANNELS" вызывает у меня проблемы, так как ваша информация также включает ";"

У кого-нибудь есть какие-либо идеи для решения этой проблемы? Заранее большое спасибо:)

СОЗДАТЬ ВНЕШНИЕ ТАБЛИЦЫ (
HD_4K String, Number_Channel Int, ID_Channels String, Тип String, Name_Channel String) ФОРМАТ СТРОКИ РАЗРЕШЕННЫХ ПОЛЕЙ, ПРЕКРАЩАЕМЫХ ПРЕКРАЩАЮЩИМИСЯ СТРОКАМИ '\ u0059''\ n' СОХРАНЕНО КАК МЕСТО НАХОЖДЕНИЯ ТЕКСТАЙЛА / база данных / каналы / 'TBLPROPERTIES ("textfile.compress" = "snappy");

ТАБЛИЦА ТЕКУЩИХ КАНАЛОВ: (

 HD_4K |    NUMBER_CHANNEL |  ID_CHANNELS   | TYPE  | NAME_CHANNELS  
(String)        (Int)            (String)    (String)     (String)
  4K              45                "1          2            3 
  HD              23                "1         6"          Film
  ""              ""                ""         ""           ""

КАНАЛЫ МЕЧТЫТАБЛИЦА

 HD_4K |    NUMBER_CHANNEL |  ID_CHANNELS   | TYPE  | NAME_CHANNELS  
(String)        (Int)            (String)    (String)     (String)
  4K              45          "1;2;3;4;5;6"   Series   Cook Channel 
  HD              23              "1;6"        Film      Channel 1
  ""              ""                ""         ""           ""

1 Ответ

1 голос
/ 04 ноября 2019

Вы можете использовать OpenCSVSerDe


CREATE EXTERNAL TABLE channels_csv(
HD_4K String, 
Number_Channel Int, 
ID_Channels String, 
Type String, 
Name_Channel String 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = ";",
   "quoteChar"     = "\""
)
LOCATION '/path/to/file' 
;

Надеюсь, это поможет

...