Запись текста в файл потока с помощью процессора выполнения сценариев в Nifi

#python #apache-nifi #jython

#питон #апач-нифи #джайтон

Вопрос:

У меня есть данные на веб-сайте(которые, к сожалению, не удалось получить с помощью InvokeHTTP). Я пытаюсь извлечь данные с помощью процессора сценариев выполнения.Вот что я сделал на python.попробовал в комментариях

 #import http.client, urllib.request, urllib.parse, urllib.error, base64 import httplib #import requests import java.io from org.apache.commons.io import IOUtils from java.nio.charset import StandardCharsets from org.apache.nifi.processor.io import OutputStreamCallback import json from datetime import datetime from java.lang import Object from jarray import array from org.python.core.util import StringUtil  class WriteContentCallback(OutputStreamCallback):   def __init__(self, content):  self.content_text = content   def process(self, outputStream):  try:  outputStream.write(StringUtil.toBytes(self.content_text))  except Exception as error:  objArray = [error]  javaArray = array(objArray, Object)  log.error('Error processing the .csv file ===gt; {}', javaArray)  raise ValueError   try:  flowFile = session.create()  conn = httplib.HTTPSConnection(url_domain)  conn.request("GET", url)  response = conn.getresponse()  data = response.read()  #outputStream.write(StringUtil.toBytes(data))  #outputStream.write(bytearray(json.dumps(out)))   flowFile = session.write(flowFile, WriteContentCallback(data))  session.transfer(flowFile, REL_SUCCESS) except Exception as outermost_error:  objArray = [outermost_error]  javaArray = array(objArray, Object)  log.error('Error processing the .csv file ===gt; {}', javaArray)  session.transfer(flowFile, REL_FAILURE)  

Проблема, по-видимому, в том, что ошибок как таковых нет…но файл не отображается(0 байт), а тип-application/octetstream.Что я могу сделать, чтобы получить вывод с веб-сайта с помощью сценария выполнения

Вот поток nifi, поток отмечен желтым цветом.

введите описание изображения здесь

Дайте мне знать, если вам понадобятся какие-либо другие подробности. код, похоже, работает как программа jython.А также,если я передам какой-нибудь случайный текст вместо данных, это тоже сработает.

Комментарии:

1. У вас есть входная очередь, но вы не читаете входной файл. Я не вижу, чтобы вы назначали переменный url. Проверьте, что у вас есть в очереди сбоев, потому что вы записываете в нее файл. Если вы не видите ошибки в файле журнала, я бы посоветовал удалить try-except и позволить nifi правильно обработать исключение.

2. Попробуйте-за исключением того, что внутренний процесс имеет необъявленную переменную ValueError.

3. Я предоставил URL-адрес…просто спрятал его..