使用revoscalepy将数据插入数据库

时间:2017-12-07 13:28:55

标签: python sql-server sql-server-2017 revoscaler

Ahoi,

是否有可能使用revoscalepy包将值插入表中?

我希望有以下几点:

import pandas as pd
from revoscalepy import rx_write_to_db, RxOdbcData

a_df = pd.DataFrame([[0, 1], [2, 3]], columns=[...])

rx_write_to_db(RxOdbcData(connection_string=con_str, ...), data=a_df)

但我找不到这样的东西。最接近的选项似乎是rx_write_object,它将数据帧作为二进制文件转储到表中。 More information about the usage can be found on the R-package site.然而,这并没有解决我的问题,因为我认为数据不在一个二进制blob中。

问题的一些上下文:在功能生成期间,我创建了多个功能,我想将这些功能存储在数据库中供以后使用。从理论上讲,我可以创建一个包含所有功能和元数据的最终数据框,并使用一些触发器将数据转储到正确的表中,但在此之前,我宁愿安装pymssql

任何线索?

Ps。:如果有人知道这样的问题的正确标签,请告诉我......

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是来自Microsoftml软件包(与revoscalepy一起安装)的rx_featurize

在拥有数据框之后,您将使用连接字符串和表名称参数创建RxSqlServerData或RxOdbcData。

然后,您只需调用rx_featurize,将其数据帧作为输入,并将Rx ... Data对象作为输出(指定是否要覆盖该表)

http://docs.microsoft.com/en-us/machine-learning-server/python-reference/microsoftml/rx-featurize

import pandas as pd
from revoscalepy import RxOdbcData
from microsoftml import rx_featurize

a_df = pd.DataFrame([[0, 1], [2, 3]], columns=[...])

rx_featurize(data=a_df,output_data=RxOdbcData(connection_string=con_str, table = tablename), overwrite = True)