Загрузка файла CSV в MySQL, но одно поле не отображается в таблице - PullRequest
0 голосов
/ 04 октября 2019

При загрузке файла CSV в таблицу MySQL все поля появятся в таблице, кроме одного. Когда я делаю выборку в этом столбце, отображаются только пробелы и заголовок поля.
Однако при просмотре таблицы через внешний инструмент (PBi) поле отображается, но с неправильными значениями.

Я дважды проверил свой скрипт, который манипулирует файлом csv перед загрузкой, и он, кажется, работает правильно.
Я начинаю с csv из AWS и манипулирую им, чтобы перейти к нужным мне столбцам.
Я могу проверить каждый столбец по отдельности и увидеть правильные значения перед загрузкой CSV с помощью команды bash ниже.

[KL@SERVER]$awk -F , {print $FIELDNUM} FILE

Код, используемый для загрузки файла, запускается в MySQL с сервера, который имеетустановил соединение.

LOAD DATA LOCAL INFILE
'FILEPATH'
INTO TABLE TABLENAME
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc);

Это приводит к появлению пробелов в поле FIELDNAME при запросе отдельного FIELDNAME из таблицы базы данных. В запросе каким-то образом выбирается правильное количество различных значений, в наборе отображается 189 строк. Но по некоторым причинам фактические результаты остаются пустыми. Я ожидаю увидеть 189 разных результатов для FIELDNAME, например, когда я делаю выборку для любого другого столбца в таблице.

1 Ответ

1 голос
/ 06 октября 2019

Для тех, кто в будущем загружает CSV в MySQL с Linux. Я понял, что в CSV есть символ ^ M, который не виден в большинстве текстовых редакторов. Используйте команду tr, чтобы заменить ее перед загрузкой в ​​mysql, и все будет хорошо.

...