Как загрузить динамические данные в таблицу Кассандры?Как прочитать CSV-файл с заголовком также? - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу загрузить файл csv (изменяющиеся столбцы) в таблицу cassandra? Файл иногда содержит 10 столбцов, а иногда 8, в соответствии с этим, как мне вставить данные в таблицу cassandra?

Есть ли способ загрузки с использованием команд scala или batch?

Как читать csv-файл с заголовком?

1 Ответ

0 голосов
/ 18 сентября 2018

Здесь действительно есть несколько вариантов. Вы можете написать собственное решение, используя один из драйверов 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.

...