Я использую Hive для обработки моих CSV-файлов.Я сохранил файлы CSV в HDFS и хочу создать таблицы из этих файлов.
Я использую следующую команду:
create external table if not exists csv_table (dummy STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 'hdfs://localhost:9000/user/hive'
TBLPROPERTIES ("skip.header.line.count"="1");
LOAD DATA INPATH '/CsvData/csv_table.csv' OVERWRITE INTO TABLE csv_table;
Поэтому файл в /CsvData
будет перемещен в /user/hive
.Это имеет смысл.
Но как, если я захочу создать другую таблицу?
create external table if not exists csv_table2 (dummy STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 'hdfs://localhost:9000/user/hive'
TBLPROPERTIES ("skip.header.line.count"="1");
LOAD DATA INPATH '/CsvData/csv_table2.csv' OVERWRITE INTO TABLE csv_table2;
Возникнет исключение с жалобой на то, что каталог не пустой.
ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Directory hdfs://localhost:9000/user/hive could not be cleaned up.
Так что мне трудно понять, значит ли это, что я могу хранить только один файл, понять одну директорию?Для хранения нескольких файлов мне нужно создать один каталог для каждого файла?
Можно ли хранить все файлы вместе?