【问题标题】:Convert Cluster object into byte or bytearray object将 Cluster 对象转换为 byte 或 bytearray 对象
【发布时间】: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


    【解决方案1】:

    这就是我解决这个问题的方法。作为初学者的我现在对“泡菜”的存在。所以我腌制了这个对象并将它保存在一个驱动器上以备将来使用。

    【讨论】:

      猜你喜欢
      • 2012-05-30
      • 2022-06-14
      • 1970-01-01
      • 2016-05-25
      • 2023-03-29
      • 2020-02-16
      • 1970-01-01
      • 2021-10-20
      • 2013-01-06
      相关资源
      最近更新 更多