org. apache .nifi.processor.exception.FlowFileHandlingException: неизвестно в этом сеансе) в <script>в строке № 32 - PullRequest
0 голосов
/ 07 февраля 2020

Я написал сценарий python, чтобы сравнить его со строками и поместить атрибут в файл потока. Но при обработке исключений я всегда получаю ошибку ниже, и мой потоковый файл застрял в очереди с процессором ExecuteScript с исключением ниже:

2020-02-07 18: 15: 26,049 ОШИБКА [Поток-управляемый поток процесса- 7] oanifi.processors.script.ExecuteScript ExecuteScript [id = 0fdb3d0f-b361-3b31-faf8-fce2dc707591] ExecuteScript [id = 0fdb3d0f-b361-3b31-faf8-fce2dc707591] не удалось обработать из-за org. 101. * 101. *. processor.exception.ProcessException: javax.script.ScriptException: org. apache .nifi.processor.exception.FlowFileHandlingException: org. apache .nifi.processor.exception.FlowFileHandlingException: StandardFlowFileRecord [uuid = e263f9d 8190-0b3864cc3e78, заявка = StandardContentClaim [resourceClaim = StandardResourceClaim [id = 1581055293097-1, контейнер = по умолчанию, раздел = 1], смещение = 416137, длина = 1236], смещение = 0, имя = имя = test_1 / test_2 / my_entity / rrp_26_dec_parent_rrp_child / dd_rrp_26_dec_parent_rrp_child_1027102 c -f97a-11aad-bpo7-bd9840e139df000.csv enter image description here, размер = 1236] i не известны в этом сеансе (StandardProcessSession [id = 22]) в строке 32; откат сеанса: org. apache .nifi.processor.exception.ProcessException: javax.script.ScriptException: org. apache .nifi.processor.exception.FlowFileHandlingException: org. apache .nifi.processor.exception. FlowFileHandlingException: StandardFlowFileRecord [uuid = e263f921-8cf3-4bd0-8190-0b3864cc3e78, заявка = StandardContentClaim [resourceClaim = StandardResourceClaim [id = 1581055293097-1, контейнер = по умолчанию, раздел = 1], смещение = 123613, смещение = 123613) 0, name = name = test_1 / test_2 / my_entity / rrp_26_dec_parent_rrp_child / dd_rrp_26_dec_parent_rrp_child_1027102 c -f97a-11aad-bpo7-bd9840e139df000.csv - это стандартная строка в этом сеансе, не в том размере: в этой строке не указан номер 32 org. apache .nifi.processor.exception.ProcessException: javax.script.ScriptException: org. apache .nifi.processor.exception.FlowFileHandlingException: org. apache .nifi.processor.exception.FlowFileHandlingException: StandardFlowFileRecord [uuid = e263f921-8cf3-4bd0-8190-0b3864cc3e78, заявка = StandardContentClaim [resourceClai m = StandardResourceClaim [id = 1581055293097-1, контейнер = по умолчанию, секция = 1], смещение = 416137, длина = 1236], смещение = 0, имя = test_1 / test_2 / my_entity / rrp_26_dec_parent_rrp_child / dd_rrp_26_dec_p_2_p10_p10_p10_p_2_p10 -bpo7-bd9840e139df000.csv, size = 1236] неизвестно в этом сеансе (StandardProcessSession [id = 22]) в строке 32 в org. apache .nifi.processors.script.ExecuteScript.onTrigger (ExecuteScript. java: 239) в орг. apache .nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode. java: 1165) в орг. apache .nifi.controller.tasks.ConnectableTask.invoke (ConnectableTask. java : 203) в орг. apache .nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent. java: 117) в java .util.concurrent.Executors $ RunnableAdapter.call (Executors. java: 511) в java .util.concurrent.FutureTask.runAndReset (FutureTask. java: 308) в java .util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (ScheduledThreadPoolExecutor: 0) в java .util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor. java: 294) в java .util.concurrent.ThreadPoolExecutor.runWorker * (ThreadPoolExec: 10 * 10) * 11 * 10 * 10 * 10 * * 10 * 10 * 10 * * 10 * 10 * * 10 .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) в java .lang.Thread.run (Тема. java: 748)

**** Ниже это сценарий: ****

enter code here
import java
import os
from java.sql import SQLException
from java.lang import Throwable
flowFile = None
try:
    flowFile = session.get()
    if flowFile != None:
        originalFilname = flowFile.getAttribute('sourceFileName')
        pathFileNameEntity = originalFilname.rsplit('_', 1)[0]
        fileNameEntity = pathFileNameEntity.rsplit('/', 1)[-1]
        realTimeEntityString = \
            flowFile.getAttribute('my.entity.name')
        for entityName in realTimeEntityString.split(','):
            ename = 'rr_' + entityName.lower()
            if ename == fileNameEntity.lower():
                cEntityName = entityName
                flowFile = session.putAttribute(flowFile,
                        'current.entity.ename', str(cEntityName))
                session.transfer(flowFile, REL_SUCCESS)
            else:
                flowFile = session.putAttribute(flowFile, 'errorMessage'
                        , 'Issue with RT Entity Names')
                session.transfer(flowFile, REL_FAILURE)
except Exception, e:

    if flowFile != None:
        flowFile = session.putAttribute(flowFile, 'errorMessage',
                str(e))
    session.transfer(flowFile, REL_FAILURE)
except Throwable, e:

    if flowFile != None:
        flowFile = session.putAttribute(flowFile, 'errorMessage',
                str(e))
    session.transfer(flowFile, REL_FAILURE)

Может кто-нибудь помочь мне понять, почему он не может войти, кроме блока, даже если исключение не произошло. Это синтаксическая ошибка?

...