我想从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"
答案 0 :(得分:0)
这就是我解决这个问题的方法。作为一个初学者,我现在已经存在" pickle。"所以我腌制了这个物体并把它保存在驱动器上以备将来使用。