Вы правы, данные не были правильно загружены (т. Е. Столбцы) в таблицу улья.Вы получаете значения из других столбцов вместе со значениями из col1, что означает, что все значения строк сохраняются / загружаются в столбец 1.
Полный оператор, использованный для создания таблицы, не ставится под сомнение.Поэтому я использовал следующий оператор DDL для создания таблицы.
create table table1 (
date_received string,
Product varchar(100),
Sub_product string,
Issue string,
Sub_issue string,
Consumer_complaint_narrative string,
Company_public_response string,
Company string,
State string,
ZIP_code string,
Tags string,
Consumer_consent_provided string,
Submitted_via string,
Date_sent_to_company string,
Company_response_to_consumer string,
Timely_response varchar(3),
Consumer_disputed string,
Complaint_ID bigint
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with SERDEPROPERTIES ( "separatorChar"=",","skip.header.line.count"="1")
stored as textfile;
Использовал следующий оператор для загрузки данных
load data inpath '/user/test/Complaints2months.csv' into table table1;
Подтвердил это в моем локальном хранилище и загружает данные правильно.Надеюсь, что это решит вашу проблему.
Примечания:
- "separatorChar" = "," - Символ разделителя по умолчанию - ',', поэтому это свойство не являетсяв этом случае обязательно.
- Вместо класса SERDE вы также можете использовать ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
- Также таблица хранится в формате TEXTFILE.Это связано с форматом входного файла.Команда «загрузить данные» не выполняет никаких преобразований данных.