我在DataStax Astra中创建了一个Cassandra数据库。我能够用Python连接到它(使用cassandra-driver
模块和secure_connect_bundle
)。我在Python应用程序中编写了一些api来查询数据库
我读到我可以使用dsbulk
上传csv到它。我能够在终端中运行以下命令,并且可以正常工作
dsbulk load -url data.csv -k foo_keyspace -t foo_table \
-b "secure-connect-afterpay.zip" -u username -p password -header true
然后我尝试在Python中使用subprocess
运行这行代码:
ret = subprocess.run(
['dsbulk', 'load', '-url', 'data.csv', '-k', 'foo_keyspace', '-t', 'foo_table',
'-b', 'secure-connect-afterpay.zip', '-u', 'username', '-p', 'password',
'-header', 'true'],
capture_output=True
)
但是我得到了FileNotFoundError: [Errno 2] No such file or directory: 'dsbulk': 'dsbulk'
。如果从Python运行dsbulk
,为什么无法识别它
一个相关的问题是,依赖subprocess
可能不是最佳实践。是否有更好的方法将批处理数据上传到Cassandra
我认为这与子流程处理路径的方式有关。尝试将命令指定为绝对路径或相对路径,如“/dsbulk”或“bin/dsbulk”
或者,如果您将DS Bulk包中的bin目录添加到PATH环境变量中,它将按您现有的方式工作
相关问题 更多 >
编程相关推荐