Python 无法从CSV文件复制数据

Python 无法从CSV文件复制数据,python,csv,cassandra,nosql,Python,Csv,Cassandra,Nosql,无法使用“复制自”命令将数据导入Cassandra表/列族 我们试过了 cqlsh> copy eqdata from '/home/swiftguy/cassandra/earthquakedata/weather-data-with-uuid.csv'; Bad Request: line 1:298 no viable alternative at input ')' Aborting import at record #0 (line 1). Previously-inserted

无法使用“复制自”命令将数据导入Cassandra表/列族

我们试过了

cqlsh> copy eqdata from '/home/swiftguy/cassandra/earthquakedata/weather-data-with-uuid.csv';
Bad Request: line 1:298 no viable alternative at input ')'
Aborting import at record #0 (line 1). Previously-inserted values still present.
表格详细信息

创建地震数据表(eqtime时间戳、经度浮动、, 纬度浮动、深度浮动、幅度浮动、磁类型文本、NB站 浮点、Gapv浮点、距离浮点、RMS浮点、源文本、EventID 文本,版本文本,id uuid,主键(eqtime,id))

这是我们正在尝试导入的

请帮帮我。提前感谢。

从下载带有地震数据的gis.zip,并将CSV与您正在使用的CSV进行比较。有一个标题和逗号用作分隔符,但与可用的公共数据基本相同。在cqlsh中,执行此操作时请记住调整COPY命令中的“path/sequences.csv”,并使用默认复制选项:

CREATE TABLE earthquakes ( datetime text PRIMARY KEY, latitude double, longitude double, depth double, magnitude double, magtype text, nbstations int, gap double, distance double, rms double, source text, eventid int ); COPY earthquakes (datetime, latitude, longitude, depth, magnitude, magtype, nbstations, gap, distance, rms, source, eventid) FROM 'path/earthquakes.csv' WITH HEADER = 'true'; 创建地震表( 日期时间文本主键, 双纬度, 经度加倍, 深度加倍, 震级加倍, magtype文本, NBINT电台, 差距加倍, 距离加倍, rms双精度, 原文, eventid int ); 从“path/sequences.csv”复制地震(日期时间、纬度、经度、深度、震级、磁类型、nbstations、间距、距离、rms、震源、事件ID),标题为“true”; 在运行Brian的python脚本添加UUID并调整UUID表后,运行此命令导入所有行:

cqlsh:mykeyspace> COPY earthquakes (datetime, latitude, longitude, depth, magnitude, magtype, nbstations, gap, distance, rms, source, eventid,newid) FROM '/Users/krishahn/Downloads/gis/out.csv' WITH HEADER = 'true'; 77037 rows imported in 2 minutes and 35.913 seconds. cqlsh:mykeyspace>从“/Users/krishahn/Downloads/gis/out.csv”复制地震(日期时间、纬度、经度、深度、震级、磁型、nbstations、间距、距离、rms、震源、eventid、newid),标题为“true”; 77037行在2分钟35.913秒内导入。
我的是地震数据的修改版本,我将UUID附加到.csv文件的每一行(以唯一标识该行)。我尝试了您列出的命令…它导致以下错误CQLSH>从“/home/swiftgay/cassandra/earthquakedata/weather data with uuid.csv”复制地震数据,标题为“true”;错误请求:第1行:319“输入时没有可行的替代方案”,“在记录#0处中止导入”(第1行)。以前插入的值仍然存在。我在尝试重新导入时看到“以前插入的值仍然存在”。删除该表并重新创建它,或运行TRUNCATE清除以前插入的值。我的命令将使用我的数据,但不使用修改后的数据。下面是一个使用包含UUID的.csv文件的示例。比较示例文件和您的文件的格式可能会有所帮助。解决复制问题的另一个方法是测试导入只有几行数据的.csv。报告了.csv中的一些不一致之处,但我相信不是全部。在.csv中包含标题数据行,并在COPY命令中使用WITH header='true'以帮助您查看格式问题。尝试使用标题行+1行数据,cqlsh>复制地震数据(eqtime、经度、纬度、深度、震级、磁型、NbStations、Gapv、距离、RMS、源、事件id、版本、id)来自“/home/swiftgay/cassandra/earthquakedata/eq data sample.csv”,标题为“true”;“column'Longitude'not found”column Lognitude在地震数据表中非常常见,也许您不能将错误消息理解得太字面。CREATETABLE命令中使用的数据类型与CREATETABLE语句中使用的数据类型看起来不一样。时间戳代替日期时间,浮点代替双精度。似乎值得尝试使用我的数据类型进行故障排除。成功使用csv数据/数据类型:创建表earthquakedata(datetime时间戳、纬度浮点、经度浮点、深度浮点、幅度浮点、MagType文本、NbStations浮点、间隙浮点、距离浮点、RMS浮点、源文本、EventID文本、版本文本、id uuid、主键(datetime、id));cqlsh:mykeyspace>复制地震数据(datetime、纬度、经度、深度、震级、磁类型、nbstations、gap、distance、rms、source、eventid、version、id)来自“/Users/krishahn/builds/2.1/apache-cassandra-2.1.0/bin/earthquakes2.csv”,标题为“true”;在0.071秒内导入2行。