我正在尝试处理一个看起来或多或少像这样的文件:
f=0412345678 t=0523456789 t=0301234567 s=Party! flag=urgent flag=english id=1221AB12
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用Python shlex来解析那些没有重大问题的东西:
entry = "f=0412345678 t=0523456789 t=0301234567 s=Party! flag=urgent flag=english id=1221AB12"
line = shlex.split(entry)
Run Code Online (Sandbox Code Playgroud)
然后我可以执行for循环并迭代键值对.
row = {}
for kvpairs in line:
key, value = kvpairs.split("=")
row.setdefault(key,[]).append(value)
print row
Run Code Online (Sandbox Code Playgroud)
结果是:
{'id': ['1221AB12'], 's': ['Party!'], 'flag': ['urgent', 'english'], 't': ['0523456789', '0301234567'], 'f': ['0412345678']}
Run Code Online (Sandbox Code Playgroud)
到目前为止这么好,但我找不到输出原始行的有效方法,以便输出看起来像:
id=1221AB12 f=0412345678 t=0523456789 s=Party! flag=urgent
id=1221AB12 f=0412345678 t=0523456789 s=Party! flag=english
id=1221AB12 f=0412345678 t=0301234567 s=Party! flag=urgent
id=1221AB12 f=0412345678 t=0301234567 s=Party! flag=english
Run Code Online (Sandbox Code Playgroud) 我需要在NiFi中使用PrioritizeAttributePrioritizer.
我已经观察到下面的优先顺序参考. https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#settings
如果我收到10个流文件,那么我需要为每个流文件设置唯一的优先级值.
之后,指定队列配置必须是PrioritizeAttributePrioritizer.
然后根据优先级值处理流文件.
如何设置单独流文件的优先级值或Nifi中的优先级为我的情况?