我试图在一列中导入cassandra中的json文件。我使用python作为代码。这个想法是让一个id列和第二个json列保持原样。
id | JSONDoc
----------------
1 | {'something': 'something', 'something1': '['somethingelse':
'withsomethin']', ...'
当我尝试运行以下命令时,出现此错误
code=2200 [Invalid query] message="Invalid map literal for testdoc
of type list<text>
代码:
session.execute("CREATE KEYSPACE doc WITH replication =
{'class':'SimpleStrategy', 'replication_factor' : 3};")
session.set_keyspace('doc')
testdoc = str(doc)
session.execute("CREATE TABLE doc4 (nodeid int PRIMARY KEY, testdoc
list<text>);")
query = "INSERT INTO doc.doc4 (nodeid, testdoc) VALUES ({0},
{1})".format(nodeid, testdoc)
session.execute(query)
我想我在创建json所在的表或列的大小时遗漏了一些东西。但是我不知道有什么其他的方法可以像json那样导入它。有没有其他的建议或者方法来解决这个问题或者在一个列中导入任何类型的json?
之后我需要在es中使用这个json。因此,如果我能将它作为json导入到一列中,这将是最好的。
2条答案
按热度按时间7rtdyuoh1#
有一种方法可以将参数传递给cql,请参阅此文档。https://datastax.github.io/python-driver/getting_started.html#passing-cql查询的参数
尝试以下操作:
请参见:
nx7onnlm2#
下面的格式是如何将json数据存储到cassandra数据库中。