我正在尝试从csv文件读取值,然后使用ExtractText处理器将值存储到属性中。该文件只包含一行,其中有5个值以逗号分隔。这是我的文件的内容:
jdbc:mysql://localhost:3306/test, com.mysql.jdbc.Driver, C:\ProgramFiles\MySQL\mysql-connector.jar, root, root
我在ExtractText处理器中手动添加了5个属性: -
DatabaseConnectionURL
DatabaseDriverClass
DatabaseDriverLocation
DatabaseUser
Password
现在,我想要在ExtractText处理器中定义的上述5个属性的正则表达式,以便它们获得以下值: -
DatabaseConnectionURL = jdbc:mysql://localhost:3306/test
DatabaseDriverClass = com.mysql.jdbc.Driver
DatabaseDriverLocation = C:\Program Files\MySQL\mysql-connector.jar
DatabaseUser = root
Password = root
您能否为我提供上述5个属性的正则表达式?
答案 0 :(得分:3)
Rishab,
使用以下正则表达式的ExtractText处理器来捕获行。
ExtractedData:(^.*$)
然后将updateAttribute与getDelimitedField()
表达式一起使用,如下所示,为流文件属性赋值。
DatabaseConnectionURL:${ExtractedData:getDelimitedField(1)}
DatabaseDriverClass:${ExtractedData:getDelimitedField(2)}
DatabaseDriverLocation:${ExtractedData:getDelimitedField(3)}
DatabaseUser:${ExtractedData:getDelimitedField(4)}
Password:${ExtractedData:getDelimitedField(5)}
getDelimitedField()
“将主题解析为分隔的文本行,并返回该分隔文本中的单个字段。”并且可以在支持NiFi表达式语言的任何配置属性上使用。有关getDelimitedField()
详细说明,请查看NiFi表达语言指南。
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#getdelimitedfield
希望此解决方案有助于解决您的问题。
不要忘记接受是否有效,如果您遇到任何问题,请告诉我。