我想把csv文件(它不断变化的列)加载到cassandra表中?文件有时有10列,有时有8列,根据这个,我如何将数据插入到cassandra表中?使用scala或批处理命令加载有什么方法吗?如何读取csv文件与标题也?
zsbz8rwp1#
这里有很多选择。您可以使用datastax驱动程序之一编写自己的解决方案,也可以使用cqlsh copy命令或datastax批量加载工具。源文件更改格式的事实在这里给您带来了一点麻烦,假设您对必须加载的文件没有任何控制权,那么在每个基中,您将需要创建一些东西,最初解析文件或将其转换为具有相同列数的通用格式。例如,如果您使用shell,那么可以使用 awk 然后把你的行动建立在这个基础上。一个简单的例子 bash 要计算列数:
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文件。
1条答案
按热度按时间zsbz8rwp1#
这里有很多选择。您可以使用datastax驱动程序之一编写自己的解决方案,也可以使用cqlsh copy命令或datastax批量加载工具。
源文件更改格式的事实在这里给您带来了一点麻烦,假设您对必须加载的文件没有任何控制权,那么在每个基中,您将需要创建一些东西,最初解析文件或将其转换为具有相同列数的通用格式。
例如,如果您使用shell,那么可以使用
awk
然后把你的行动建立在这个基础上。一个简单的例子bash
要计算列数:一旦你有了这个,你应该能够解析或转换你的文件,并相应地加载到Cassandra你会与任何其他csv文件。