【发布时间】:2019-02-21 17:43:22
【问题描述】:
我想将 csv 文件(其变化的列)加载到 cassandra 表中? 文件有时有 10 列,有时有 8 列,根据这个我如何将数据插入到 cassandra 表中?
有没有办法使用 scala 或批处理命令进行加载?
如何读取带有标题的 csv 文件?
【问题讨论】:
标签: scala cassandra cql scala-collections scalatest
我想将 csv 文件(其变化的列)加载到 cassandra 表中? 文件有时有 10 列,有时有 8 列,根据这个我如何将数据插入到 cassandra 表中?
有没有办法使用 scala 或批处理命令进行加载?
如何读取带有标题的 csv 文件?
【问题讨论】:
标签: scala cassandra cql scala-collections scalatest
这里真的有很多选择。您可以使用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。
【讨论】: