gpt4 book ai didi

python - Apache Cassandra Python 插入数据

转载 作者:行者123 更新时间:2023-12-04 07:42:08 24 4
gpt4 key购买 nike

我正在尝试从 Cassandra 中的 json 文件插入数据,这是我的代码:

with open('../test.jsonl') as f:
data = f.readlines()

for row in data:
row = json.loads(row)
insert_start = session.prepare(
"INSERT INTO player_session.startevents (player_id, event, country, session_id, ts) VALUES (?, ?, ?, ?, ?)")
insert_end = session.prepare(
"INSERT INTO player_session.endevents (player_id, event, country, session_id, ts) VALUES (?, ?, ?, ?, ?)")
if row['event'] == "start":
session.execute(
insert_start,
[row['player_id'], row['event'], row['country'], row['session_id'], row['ts']]
)
if row['event'] == "end":
session.execute(
insert_end,
[row['player_id'], row['event'],row['country'], row['session_id'], row['ts']]
)
f.close()
print("data import complete")
在我的 cassandra 表中,“ts”的 data_type 是一个时间戳。
我收到此错误:
line 17, in insert_data
session.execute(
File "cassandra/cluster.py", line 2618, in cassandra.cluster.Session.execute
File "cassandra/cluster.py", line 2661, in cassandra.cluster.Session.execute_async
File "cassandra/cluster.py", line 2864, in cassandra.cluster.Session._create_response_future
File "cassandra/query.py", line 500, in cassandra.query.PreparedStatement.bind
File "cassandra/query.py", line 631, in cassandra.query.BoundStatement.bind
TypeError: Received an argument of invalid type for column "ts". Expected: <class 'cassandra.cqltypes.DateType'>, Got: <class 'str'>; (DateType arguments must be a datetime, date, or timestamp)
如果我在没有准备语句的情况下插入数据,它就可以工作
提前致谢

最佳答案

首先 - 移动 session.prepare在循环外调用。其次,真正的问题是row['ts']有字符串类型,你有 date输入数据库。所以你需要把字符串转换成datetimedate使用类似 datetime.strptime 的东西.

关于python - Apache Cassandra Python 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67406396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com