首页 > 解决方案 > 如何在 apache nifi writer 中设置内容类型 csv?

问题描述

我编写了一个将 xlsx 处理为 csv 的 nifi 自定义处理器,在我的代码中,我从 xlsx 生成了一个像这样的字符串 csv,但我不知道如何将其作为 csv 发送,而其他处理器(如来自 csv 的 inferavroschema)可以识别输入流为 csv。

final AtomicReference<String> value = new AtomicReference<>();

String csvToString= "
name,age,info
javo,23,wasa
pepe,34,lima"

value.set(csvToString);

在我的代码中,我以这种方式发送它,但是当我看到数据出处时,它显示为内容类型文本:

String results = value.get();
       if(results != null && !results.isEmpty()){
           flowFile = session.putAttribute(flowFile, "csv", results);
       }
       flowFile = session.write(flowFile, new OutputStreamCallback() {
           @Override
           public void process(OutputStream out) throws IOException {
               out.write(value.get().getBytes());
           }
       });
       session.transfer(flowFile, SUCCESS);

标签: javaapache-nifi

解决方案


nifi 中内容类型的属性名称命名mime.type

因此,您必须将其值设置为csv.

flowFile = session.putAttribute(flowFile, "mime.type" "csv");

推荐阅读