我有一个带有
delete
语句的脚本,它总是返回一个 DataFrame。今天写了一个类似的脚本,但是发现只要包含delete
语句,就会抛出异常IO Error Type 1
。然后我根据DolphinDB Python API文档将协议选项更改为PROTOCOL_DDB,它工作正常。
阅读用户指南后,我对协议PROTOCOL_DDB、PROTOCOL_PICKLE和PROTOCOL_ARROW有以下疑问。
这三个协议在使用场景上有什么具体区别?
为什么默认使用PROTOCOL_PICKLE?
PROTOCOL_DDB、PROTOCOL_PICKLE 和 PROTOCOL_ARROW 都是 DDB Python Api 客户端和服务器之间通信中对象序列化的协议。
区别:
在数据类型的转换方面:PROTOCOL_PICKLE和 PROTOCOL_DDB 有自己的优缺点 类型。
在使用场景方面: PROTOCOL_ARROW最适合箭头格式作为中间格式贯穿整个过程(从数据导入到数据消费)的场景。如果
pandas.DataFrame
用的多,那么PROTOCOL_PICKLE和PROTOCOL_DDB比较合适,对于其他通用的数据类型,PROTOCOL_PICKLE相对更快,这也是默认使用它的原因