使用Python sys.stdout修改NiFi中的流文件属性?

2024-04-24 10:59:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的管道中,我有一个流文件,其中包含一些我想作为属性添加到流文件中的数据。我知道在Groovy中我可以向流文件添加属性,但我对Groovy不太熟悉,更习惯于使用Python解析字符串(这是提取这些属性的值所需要做的)。问题是,当我使用ExecuteStreamCommand读取带有sys.stdin.read()的文件并使用sys.stdout.write()写出文件时,我能在Python中实现这一点吗

例如,我使用下面的代码从我的流文件中提取时间戳。当我写出ff时,如何添加ts作为属性

import sys

ff = sys.stdin.read()
t_split = ff.split('\t')
ts = t_split[0]

sys.stdout.write(ff)

Tags: 文件数据字符串read属性管道stdinstdout
1条回答
网友
1楼 · 发布于 2024-04-24 10:59:31

如果您没有导入任何本机(CPython)模块,可以尝试使用Jython而不是ExecuteStreamCommand执行ExecuteScript。我在Jython的ExecuteScript cookbook中有一个例子。请注意,您没有将stdin/stdout与ExecuteScript一起使用,而是必须从会话中获取流文件,并按原样传输它(在完成读取后)或覆盖它(在second part of the cookbook中有示例)

相关问题 更多 >