也许这是一个愚蠢的问题,但我还是要问一下。
我在Nifi中有一个Collect_data处理器,它将消息流式传输到另一个进程中,该进程使用Python脚本解析并创建JSON文件。问题是我不知道Python脚本中的函数输入是什么。如何将那些消息(16位数字)从Collect_data处理器传递到包含Python脚本的下一个处理器中。是否有任何关于此的好的基本示例?
我已经在网上寻找了一些示例,但并没有真正理解。
我在Nifi中有一个Collect_data处理器,它将消息流式传输到另一个进程中,该进程使用Python脚本解析并创建JSON文件。问题是我不知道Python脚本中的函数输入是什么。如何将那些消息(16位数字)从Collect_data处理器传递到包含Python脚本的下一个处理器中。是否有任何关于此的好的基本示例?
我已经在网上寻找了一些示例,但并没有真正理解。
import datetime
import hashlib
from urlparse import urlparse, parse_qs
import sys
from urlparse import urlparse, parse_qs
from datetime import *
import json
import java.io
from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback
from time import time
def parse_zap(inputStream, outputStream):
data = inputStream
buf = (hashlib.sha256(bytearray.fromhex(data)).hexdigest())
buf = int(buf, 16)
buf_check = str(buf)
if buf_check[17] == 2:
pass
datetime_now = datetime.now()
log_date = datetime_now.isoformat()
try:
mac = buf_check[7:14].upper()
ams_id = buf_check[8:]
action = buf_check[3:4]
time_a = int(time())
dict_test = {
"user": {
"guruq" : 'false'
},
"device" : {
"type" : "siolbox",
"mac": mac
},
"event" : {
"origin" : "iptv",
"timestamp": time_a,
"type": "zap",
"product-type" : "tv-channel",
"channel": {
"id" : 'channel_id',
"ams-id": ams_id
},
"content": {
"action": action
}
}
}
return dict_test
except Exception as e:
print('%s nod PARSE 500 \"%s\"' % (log_date, e))
我想我读得没错,但是现在无法生成输出。
提前感谢。