欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用nifi executescript 生成3小时间隔字符串

程序员文章站 2022-07-06 16:27:32
...
import java.io
from datetime import datetime
from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback

class GetDate(StreamCallback):
  def __init__(self):
        pass
  def process(self, inputStream, outputStream):
  	#text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
  	dt = ''
	months = [1, 4, 7, 10]
	for year in range(1990,2016):
	    for i in range(len(months)):
	        dt1 = datetime(year, months[i], 1, 0, 0, 0)
	        if months[i] == 10:
	            dt2 = datetime(year+1, 1, 1, 0, 0, 0)
	        else:
	            dt2 = datetime(year, months[i]+3, 1, 0, 0, 0)
	        dt += dt1.strftime("%Y-%m-%d %H:%M:%S") + ',' + dt2.strftime("%Y-%m-%d %H:%M:%S") + ";"
	outputStream.write(dt)
	
flowFile = session.create()
if (flowFile != None):
  flowFile = session.write(flowFile, GetDate())
  #flowFile = session.putAttribute(flowFile, "filename", flowFile.getAttribute('filename').split('.')[0]+'_translated.json')
session.transfer(flowFile, REL_SUCCESS)
session.commit()