削减 NIFI 中 HTTP 响应的第一行

Slashing first row from HTTP response in NIFI

我目前正在使用 InvokeHTTP 处理器将 HTTP 端点摄取到 HDFS 中。我的 HTTP 端点是:http://www.cbioportal.org/webservice.do?cmd=getMutationData&case_set_id=gbm_tcga_all&genetic_profile_id=gbm_tcga_mutations&gene_list=TP53+PIK3CA

您可能注意到了,我想削减第一行,然后推入 HDFS。 我查看了 InvokeHTTP 的属性,但没有删除 header 行等功能。 我想知道在这种情况下,什么是最有效的处理方式。

您可以使用 SplitTextMergeContent

的序列

但最有效的是脚本,IHMO。

ExecuteScript(groovy)

def ff=session.get()
if(!ff)return
ff = session.write(ff, {rawIn, rawOut->
    rawOut.withWriter("UTF-8"){writer->
        rawIn.eachLine("UTF-8"){line,index->
            if(index>1)writer.append(line).append('\n')
        }
    }
} as StreamCallback)
session.transfer(ff, REL_SUCCESS)

删除任何 FlowFile 内容的第一行的最快方法是使用 ExecuteStreamCommand 处理器通过 linux 命令 'sed 1d' 运行 它。