java - 如何在 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);
解决方案
nifi 中内容类型的属性名称命名mime.type
因此,您必须将其值设置为csv
.
flowFile = session.putAttribute(flowFile, "mime.type" "csv");
推荐阅读
- apache-spark - 将 sql-spark-connector 库安装到 Azure Synapse Apache Spark
- c# - 如何获取 csv 字符串格式的子表项的计数
- arrays - 单个元素的低阶 Spark Dataframe Array 连接
- c# - 我想使用 LINQ 获得最常见的值
- xslt - 在 XSL 中的两个日期之间计算
- latex - Biblatex 再次显示同一作者而不是“-”
- r - 将不同大小的命名向量合并到数据框中
- ansible - 无法访问 jinja 中的字典值
- python - 输入/输出到/从控制台
- javascript - 使用 match 将路由器 dom 与 Typescript 反应