削减 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 行等功能。
我想知道在这种情况下,什么是最有效的处理方式。
您可以使用 SplitText
和 MergeContent
的序列
但最有效的是脚本,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' 运行 它。
我目前正在使用 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 行等功能。 我想知道在这种情况下,什么是最有效的处理方式。
您可以使用 SplitText
和 MergeContent
但最有效的是脚本,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' 运行 它。