Здесь действительно есть несколько вариантов. Вы можете написать собственное решение, используя один из драйверов Datastax , или использовать команду cqlsh COPY , или инструмент Datastax Bulk Loader .
Тот факт, что ваш исходный файл меняет формат, бросает вам немного кривая и предполагает, что вы не имеете никакого контроля над файлами, которые вы должны загрузить, тогда в каждой базе вам нужно будет создать что-то, что первоначально будет анализироваться файл или преобразует его в общий формат с таким же количеством столбцов.
Например, если вы используете оболочку, вы можете сосчитать столбцы, используя что-то вроде awk
, а затем основывать свои действия на этом. Простой пример с bash
для подсчета количества столбцов:
$ cat csv.ex1
apples,bananas,grapes,pineapples
$ cat csv.ex2
oranges,mangos,melons,pears,rasberries,strawberries,blueberries
$ cat csv.ex1 | awk -F "," '{print "num of cols: "NF}'
num of cols: 4
$cat csv.ex2 | awk -F "," '{print "num of cols: "NF}'
num of cols: 7
Получив это, вы сможете соответствующим образом анализировать или преобразовывать свой файл и загружать его в Cassandra, как и в случае с любым другим файлом CSV.