【发布时间】:2017-03-08 22:19:55
【问题描述】:
目标
我想将 scikit-learn 中的集群对象插入到 sql-server 表中(varbinary(max) 列)。
我正在为我们的分析团队创建一个大数据开发和测试环境。我知道有更好的选择,但 sql-server 和 python 是我目前必须使用的。
问题
我需要能够将集群对象(在此示例中为 MiniBatchKMeans 对象)转换为字节或字节数组,以便能够插入到 sql-server 表中。我收到 MiniBatchKMeans 对象不可迭代的类型错误。
我解决这个问题的最佳方法是什么?我是否需要找到 MiniBatchKMeans 对象的起始地址,然后是对象的大小,并一次一个字节地遍历内存块?
我找到了一个参考:on how to chunk a byte string,但这似乎没有帮助。
转换测试代码
def Test_03():
# variables
string_byte_error_msg = 'No error'
string_bytearray_error_msg = 'No error'
bool_byte_no_error = False
bool_bytearray_no_error = False
# generate knn cluster object
clust_knn_obj = MiniBatchKMeans(n_clusters = 10, init = 'k-means++', n_init = 5)
# convert to byte type
try:
byte_knn_clust = bytes(clust_knn_obj)
except TypeError as e_t:
string_byte_error_msg = e_t.args[0]
except Exception as e:
string_byte_error_msg = e.args[0]
else:
bool_byte_no_error = True
finally:
pass
# convert to byte array
try:
byte_array_knn_clust = bytearray(clust_knn_obj)
except TypeError as ba_e_t:
string_bytearray_error_msg = ba_e_t.args[0]
except Exception as ba_e:
string_bytearray_error_msg = ba_e.args[0]
else:
bool_bytearray_no_error = True
finally:
pass
# below will insert into the mssql database in a varbinary(max) column
#...
pass
错误信息
string_byte_error_msg = "'MiniBatchKMeans' object is not iterable"
string_bytearray_error_msg = "'MiniBatchKMeans' object is not iterable"
【问题讨论】:
标签: python sql-server python-3.x scikit-learn byte