У меня есть набор файлов с гораздо большим количеством столбцов, чем нам действительно нужно. Включенные столбцы и порядок могут быть переменными. Используя эту таблицу, создайте:

CREATE EXTERNAL TABLE `test1column`(
`column3` string)
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://bucketpath/folder'
TBLPROPERTIES (
  'has_encrypted_data'='false', 
  'transient_lastDdlTime'='1524150460')

Афина просто вставляет первый столбец, поэтому в итоге получается:

column3
---------
column1
val1
val2
val3

Я создаю эти таблицы программно, поэтому мне не нужно читать каждое имя столбца и создавать таблицу с большим количеством данных, чем мне нужно. Если пока невозможно отобразить только определенные столбцы в таблице с помощью Athena, я полагаю, что мне придется.

1
JoshBleggi 19 Апр 2018 в 18:54

1 ответ

Лучший ответ

Я думаю, НЕТ, вам нужно будет создать таблицу со всеми столбцами, а затем, выбирая данные из этой таблицы, вы можете указать столбцы.

2
DEEPAK LAKHOTIA 21 Апр 2018 в 16:16