使用Python将.csv文件加载到Apache Cassandra中的问题

问题描述

我正在尝试使用Python将.csv文件加载到Apache Cassandra数据库中。 与session.execute集成的命令“ copY”似乎不起作用。 它给出了=','对应关系的意外缩进,但是...我犯了一些错误,发现不支持这种方式的copY命令。

在此脚本中,time_test和p是两个浮点变量

from cassandra.cluster import Cluster

cluster = Cluster()

session = cluster.connect('myKEYSPACE')


rows = session.execute('copY table_test (time_test,p) 
                        from'/home/mypc/Desktop/testfile.csv' with delimiter=',' and header=true;
                       ')
                                                                     

print('DONE')

谢谢您的帮助!

解决方法

这里的主要问题是COPY不是CQL命令,而是cqlsh命令,因此无法通过session.execute执行。

我建议使用DSBulk将数据加载到Cassandra中-它非常灵活,高性能,并且不需要编程。对于最简单的情况,当您将CSV文件标题中的列直接映射到数据库中的列名称时,命令行将非常简单:

dsbulk load -url file.csv -k keyspace -t table -header true

关于DSBulk的一系列博客文章涉及很多主题: