我试图在UpdateRecord处理器中用空值替换空字段。
/title ${field.value:replaceEmpty(null)}
这失败了因为" null"不是有效的关键字。如何在nifi表达式语言中指定null?
答案 0 :(得分:0)
您可以使用i-1
函数返回一个String值,该值是函数的确切输入,您可以将其嵌套在def runLengthEncoding(myList):
aList = []
count = 1
for i in range(1, len(myList)):
if myList[i] == myList[i - 1]:
count = count + 1
else:
aList.append((count, myList[i - 1]))
count = 1
if i == len(myList) - 1:
aList.append((count, myList[i]))
return aList
方法中。尝试使用表达式literal()
。 击>
如果您在replaceEmpty
处理器中执行此操作,则需要使用Apache NiFi RecordPath语法,而不是Expression Language。我相信${field.value:replaceEmpty(${literal('null')})}
和其他人甚至会解析一个只包含空空格的字段值,因此像UpdateRecord
这样的正则表达式不起作用。
我的建议是提交请求此功能的Jira。同时,请不要使用CSVReader
,而是replaceRegex( /title, '^(?![\s\S])$', 'null' )
使用正则表达式UpdateRecord
作为空CSV值,并将其替换为ReplaceText
。
答案 1 :(得分:0)
使用 RecordPath
有一个技巧,如果字段值为空,您可以这样做以获得空值。
/fieldName[not(isBlank(/fieldName))]