我是批量使用SSTable将数据加载到cassandra中。我正在关注https://github.com/SPBTV/csv-to-sstable这个。
我通过
创建了SSTables $ java -jar csv-to-sstable.jar quote /home/arque/table_big.cql /home/arque/Documents/data.csv /home/arque
我在尝试运行以下命令时遇到错误:
$ sstableloader -d 192.168.0.7 /home/arque/quote/table_big
错误:
Error: Established connection to initial hosts
Opening sstables and calculating sections to stream
Failed to list files in /home/arque/quote/table_big
java.lang.AssertionError
java.lang.RuntimeException: Failed to list files in /home/arque/quote /table_big
at org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:77)
答案 0 :(得分:0)
错误发生在csv-to-sstable工具中。请查看此文件:https://github.com/SPBTV/csv-to-sstable/blob/master/src/main/java/com/spbtv/cassandra/bulkload/Bulkload.java
您说主键是复合键时只有问题。这是因为该工具希望主键在与列相同的通道上定义。 第66行:
// Primary key defined on the same line as the corresponding column
Pattern pattern = Pattern.compile(".*?(\\w+)\\s+\\w+\\s+PRIMARY KEY.*");
如果你改变它以满足你的需要它应该工作。