Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
副本只能在cqlsh中使用,因此我可以';t在Java中将其用作CQL命令。是否有类似的方法将CSV导入到表中?_Java_Csv_File Io_Cassandra_Cql - Fatal编程技术网

副本只能在cqlsh中使用,因此我可以';t在Java中将其用作CQL命令。是否有类似的方法将CSV导入到表中?

副本只能在cqlsh中使用,因此我可以';t在Java中将其用作CQL命令。是否有类似的方法将CSV导入到表中?,java,csv,file-io,cassandra,cql,Java,Csv,File Io,Cassandra,Cql,我有一个CSV文本文件,我想用它来填充键空间中的表(使用Java) 我尝试使用COPY命令,但我刚刚意识到COPY命令不是实际的CQL命令:它只能与cqlsh shell一起运行 我想做的是: session.execute("COPY table(Column1,Column2,Column3) FROM ('textfile.txt') WITH DELIMITER='\t'"); (如果您想将其作为上下文,请参阅前面

我有一个CSV文本文件,我想用它来填充键空间中的表(使用Java)

我尝试使用COPY命令,但我刚刚意识到COPY命令不是实际的CQL命令:它只能与cqlsh shell一起运行

我想做的是:

session.execute("COPY table(Column1,Column2,Column3) 
                 FROM ('textfile.txt') 
                 WITH DELIMITER='\t'");
(如果您想将其作为上下文,请参阅前面的代码):

我收到的主要错误信息是:

线程“main”中出现异常 com.datastax.driver.core.exceptions.SyntaxError:行1:0不可行 输入“复制”时的备选方案([复制]…)

我在谷歌上搜索了一下,发现你只能通过cqlsh使用副本

是否有其他方法可以轻松地将CSV导入密钥空间?我可以通过Java中的CQL命令使用它吗


谢谢

您是对的,“copy”是一个cqlsh(shell)命令,而不是一个CQL(protocol)命令。以下是相关文件,解释了每种情况下的适用范围:

要从Java应用程序中的CSV文件导入,您需要自己编写。一个流行的工具是用Java编写的。您还可以从其他源代码片段中学习

    Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    Session session = cluster.connect( );
    session.execute("CREATE KEYSPACE test WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '1'};";);
    session.execute("USE test");
    session.execute("CREATE TABLE table(Column1 text, Column2 text, Column3 text, PRIMARY KEY(Column1))");