2015-12-11 2 views
-1

Я знаю, что мы можем создать таблицу Impala какImpala минимум DDL

CREATE EXTERNAL TABLE SCHEMA.TableName LIKE PARQUET 
'/rootDir/SecondLevelDir/RawFileThatKnowsDataTypes.parquet' 

Но я не уверен, что если Impala может создать таблицу из файла (предпочтительно текстовый файл), который не имеет известного форматирования. Таким образом, другими словами, если я просто удаляю случайный файл в hadoop с помощью команды put, могу ли я обернуть DDL Impala вокруг него и создать таблицу. Может ли кто-нибудь сказать мне?

+1

Но это текстовый файл, иметь любую структуру? Вы спрашиваете, может ли Impala автоматически определить форматирование? –

+0

Извините, я не видел этот комментарий. Да, это то, что я прошу очень много! –

+1

Нет, у Импалы такой функции нет. Это было бы слишком сложно и подвержено ошибкам - подумайте о текстовом файле сообщений чата с запятыми, точками с запятой, вкладками и другими символами пунктуации; как вы программным образом определяете разделитель столбцов? Вы должны определить форматирование явно. –

ответ

1

Если файл является разделенным символом новой строки, я считаю, что он должен работать, если вы предоставите разделитель столбцов с предложением ROW FORMAT, так как текстовый файл является стандартным форматом. Просто избавиться от пункта LIKE, а также выбрать имена и типы данных для вашей колонны что-то вроде этого:

CREATE EXTERNAL TABLE SCHEMA.TableName (col1 STRING, col2 INT, col3 FLOAT) 
'/rootDir/SecondLevelDir/RawFile' 
row format delimited fields terminated by ","; 
+0

Но я хочу, чтобы импала имела правильное количество столбцов и, возможно, подразумевала некоторые типы данных, похожие на bcp в традиционной RDBMS –

+0

. Я не понимаю, что вы просите, знаете ли вы разделитель столбцов? – maxymoo

+0

помогает ли мой ответ? – maxymoo