Python CQL TypeError:接收到列的无效类型参数
我使用的是Python CQL TypeError:接收到列的无效类型参数,python,python-3.x,cassandra,cql,Python,Python 3.x,Cassandra,Cql,我使用的是Cassandra Python驱动程序,我创建了一个表,表中有一列(称为日期)定义为时间戳。我尝试从数据帧访问值,并使用这些值将行插入表中。与日期对应的数据帧值具有以下格式(从PyCharmdebug模式捕获) Timestamp('2006-09-29 00:00:00') 但是我犯了以下错误 TypeError: Received an argument of invalid type for column "date". Expected: <class 'cassand
Cassandra Python驱动程序
,我创建了一个表,表中有一列(称为日期)定义为时间戳
。我尝试从数据帧访问值,并使用这些值将行插入表中。与日期对应的数据帧值具有以下格式(从PyCharm
debug模式捕获)
Timestamp('2006-09-29 00:00:00')
但是我犯了以下错误
TypeError: Received an argument of invalid type for column "date". Expected: <class 'cassandra.cqltypes.DateType'>, Got: <class 'str'>; (DateType arguments must be a datetime, date, or timestamp)
更新
问题是由于数据帧中存在NAT,在将它们插入cassandra之前忘记删除它们。尝试使用
datetime.datetime(2016,09,29)
代替datetime.datetime(2016,09,29)
代替
在使用Cassandra
向表中插入行之前,在数据框中指定了format
参数,因此pandates-datetime
与Cassandra-Timestamp
不兼容。我认为pandas.to_-datetime()可以工作,因为它返回一个datetime.datetime对象。不知道为什么没有。在使用Cassandra
向表中插入行之前,我还使用了数据帧中指定的format
参数的pandates.to\datetime()
与Cassandra Timestamp
不兼容。我认为pandas.to\datetime()将工作,因为它返回datetime.datetime对象。不知道为什么没有。
CREATE TABLE test_keyspace.test_table (
key1 text PRIMARY KEY,
key2 float,
key3 text,
key4 text,
key5 text,
date timestamp
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';