我想将CSV文件(其更改列)加载到cassandra表中吗? 文件有时有10列,有时有8列,根据此我该如何将数据插入cassandra表中?
是否可以使用scala或批处理命令来加载?
如何也读取带有头文件的csv文件?
答案 0 :(得分:1)
这里确实有很多选择。您可以使用Datastax drivers之一来编写自己的解决方案,也可以使用cqlsh COPY命令或Datastax Bulk loader tool。
您的源文件更改格式的事实在这里给您带来了一些麻烦,并且假设您对要加载的文件没有任何控制权,那么在每个基础中您都需要创建一些最初解析的文件文件或将其转换为具有相同列数的通用格式。
例如,如果您使用的是Shell,则可以使用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
一旦有了这个,您就应该能够相应地解析或转换文件,并像使用其他任何csv文件一样将其加载到Cassandra中。