Команда КОПИРОВАНИЯ в Cassandra врывается в соседнюю ячейку предложения в файле csv

#csv #cassandra #copy #cqlsh

#csv #cassandra #Копировать #cqlsh

Вопрос:

Я использую команду копирования в cassandra:

 COPY table_name TO 'path/file.csv' with HEADER = TRUE;
  

После копирования в csv одно из значений ячейки (которое представляет собой очень длинную строку) разбивается на куски и разбрасывается в соседней ячейке, перекрывая другой столбец.

Требуется решение, чтобы правильно это понимать.

Комментарии:

1. Какой длины ваша строка? Однако это не должно быть проблемой. Похоже, что строка отображается в другом столбце в файле csv, но она присутствует в одном столбце

Ответ №1:

одно из значений ячейки (которое представляет собой очень длинную строку) разбивается на куски и разбросано по соседней ячейке, перекрывая другой столбец.

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

 COPY table_name TO 'path/file.csv' with DELIMITER='|' AND HEADER = TRUE;
  

Ответ №2:

Вместо использования COPY команды, которая имеет довольно ограниченные возможности, а также проблематична для использования с большими объемами данных, я предлагаю использовать инструмент DSBulk для экспорта или импорта данных в / из форматов CSV и JSON — он сильно оптимизирован для быстрого экспорта / импорта данных и легко настраивается. Это может быть так просто, как (формат CSV по умолчанию):

 dsbulk unload -k keyspace -t table -url filename
  

Вы можете контролировать, какие столбцы экспортировать, хранить данные в сжатых файлах и т. Д. Смотрите Следующие сообщения в блоге для примеров: