【发布时间】:2021-01-21 15:51:03
【问题描述】:
我的最终目标是屏蔽一个特定文件中的数据。我想将文件从一个地方移动到另一个地方。在此传输过程中,我必须使用 Python 脚本屏蔽数据。所以,我设计了以下流程:
GetFile > ExecuteStreamCommmand > PutFile
我使用pandas 设计了一个Python 脚本。我在Google Cloud Platform 创建的虚拟机上运行这个NiFi,我安装了Python-2.7 和NiFi-1.9.1。以下是我的熊猫代码:
import pandas as pd
readFile = pd.read_csv("/path",sep=" ",header=None)
readFile.columns = ['IP']
readFile['IP'] = readFile['IP'].replace(regex='((?<=[0-9])[0-9]|(?<=\.)[0-9])',value='X')
readFile.to_csv("/path", sep=' ')
我有以下疑问:
1) 使用 getFile 处理器,我将队列中的文件传递给下一个处理器,即 ExecuteStreamCommand 处理器。
2)另外,在我的 Python 代码中,我试图从在 GetFile 处理器中传递的同一输入目录中读取数据,但现在该文件已移动到 getfile > executestreamcommand 之间的队列中。那么它将如何读取呢?
3)python脚本执行后如何使用putFile处理器将其保存回其他地方?
【问题讨论】:
-
你在“Python”代码中做了什么?看来您只是替换了文件中的某些内容,对吗?我们无法在执行流命令处理器中读取传入的流文件
-
但我想在 executestreamcommand 处理器中使用正则表达式屏蔽数据。那我该怎么做呢?这种情况下的流程是什么?
-
看来您可以在 ReplaceText 处理器本身中屏蔽数据,无需使用 Python 脚本。
标签: python hadoop google-cloud-platform apache-nifi