微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SSIS中执行Python脚本,该脚本使用SSIS生成的数据

如何解决在SSIS中执行Python脚本,该脚本使用SSIS生成的数据

我有一个SSIS软件包,它将导入excel文件。我想使用python脚本遍历所有列标题,并用'_'替换所有空格。

以前,当对熊猫数据框执行此操作时,我会使用:

df.columns = [w.replace(' ','_') for w in list(df.columns)]

但是我不知道如何从python引用列标题。我了解我使用了“执行流程任务”以及如何将其执行到SSIS中,但是如何从Python引用SSIS包中包含的数据集?

解决方法

您的数据集将不在SSIS中。 SSIS中唯一的数据是数据流任务中的行缓冲区。您可以在其中定义源,目标以及每行发生的任何转换。

如果要执行python脚本,最终结果是您已经以其他某种格式表示了原始Excel文件。也许您将其重写为CSV,也许您将其写到了表中,也许只是作为新的Excel文件写回了,但列名中没有空格。

没有本机数据流源可让您直接使用python。有一个脚本组件可让您运行任何内容,还有IronPython可以使您run IronPython in SSIS,但不适用于数据流任务。数据流任务在运行时取决于元数据。也就是说,在程序包运行之前,引擎将询问源元素和目标元素以确保它们存在,这些列的数据类型与合同中描述的数据类型相同或更大。在设计时构建。

简单来说,您无法在数据流任务中动态更改数据的形状。如果您需要通用的动态数据导入器,那么您将自己编写所有逻辑。您仍然可以使用SSIS作为执行框架,因为它具有良好的日志记录,管理等功能,但是您的SSIS包将主要是.NET项目。

因此,尽管如此,我认为如果尝试将IronPython与Pandas一起使用,您将面临的下一个挑战是they don't work together。至少,这还不够好,以至于表达的“列重命名”的愿望值得您付出努力和维护的麻烦。

,

有一个选项可以在数据流中使用python脚本执行sp_execute_external_script并将其用作源。您也可以将其保存为CSV或excel文件,然后在SSIS中读取。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。