Я новичок в Apache Cassandra (использую Python 3) и пытаюсь создать таблицу на основе CSV-файла. Вот как файл выглядит так:
https://i.stack.imgur.com/aYRS1.jpg (извините, но у меня недостаточно очков репутации, чтобы разместить изображение здесь)
Сначала я создаю таблицу
query1 = "CREATE TABLE IF NOT EXISTS table1(artist text, title text, \
length text, sessionId text, itemInSession text, PRIMARY KEY (sessionId, title, artist))"
session.execute(query1)
А потом я пытаюсь прочитать файл и вставить нужные данные в таблицу:
file = 'event_datafile_new.csv'
with open(file, encoding = 'utf8') as f:
csvreader = csv.reader(f)
next(csvreader) # skip header
for line in csvreader:
query = "INSERT INTO table1(artist, title, length, sessionId, itemInSession)"
query = query + "VALUES(%s, %s, %s, %s, %s)"
session.execute(query, (line[0], line[9], line[5], line[8], line[3]))
Однако я получаю следующую ошибку:
---> 13 session.execute(query, (line[0], line[9], line[5], line[8], line[3]))
/opt/conda/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so in cassandra.cluster.Session.execute (cassandra/cluster.c:38536)()
/opt/conda/lib/python3.6/site-packages/cassandra/cluster.cpython-36m-x86_64-linux-gnu.so in cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:80834)()
InvalidRequest: Error from server: code=2200 [Invalid query] message="Invalid STRING constant (288.9922) for "length" of type float"
Даже когда я попытался изменить формат "length" на float - и с% s на% f в операторе INSERT - это не сработало. Кто-нибудь знает в чем может быть проблема? Большое спасибо! :)