【发布时间】:2018-12-19 00:15:44
【问题描述】:
我正在使用如下流程(基本上是从 s3 获取文件,然后从主 CSV 文件转换少量记录,然后将其推送到 Elasticsearch): GetSQS->UpdateAtttribute->SplitJson->EvaluateJsonPath->UpdateAttribute->convertRecord->其他处理器...
我能够正确地从 s3 获取文件,但 ConvertRecord 处理器抛出错误:封装的标记和分隔符之间的字符无效
请在下方找到 ConvertRecord 配置:
**CSVRecordReader** : Schema Access strategy as "Use 'Schema Text' Property
Schema Text:
{
"type": "record",
"name": "AVLRecord0",
"fields" : [
{"name": "TimeOfDay","type": "string", "logicalType":"timestamp-millis"},
{"name": "Field_0", "type": "double"},
{"name": "Field_1", "type": "double"},
{"name": "Field_2", "type": "double"},
{"name": "Field_3", "type": "double"}}
]
}
**CSVRecordWritter**:
Schema Write Strategy : Set 'Avro. schema' Attribute
Schema Access Strategy: Use Schema Text Property
请告诉我为什么我从 S3 成功获取后看不到转换后的记录。
所需的输出仅为 CSV 格式。请找到在 s3 上上传的附加示例文件,我只想转换为 field_5。
附上控制器服务截图:
谢谢!
【问题讨论】:
-
@Shu 我已经更新了这个问题。谢谢你!请帮助解决这个问题。
-
它按预期工作 xml 在这里:github.com/shureddy/NiFiTemplates/blob/master/…,请检查 1.您输入文件中的数据,是否有任何
extra quote/comma characters嵌入(或不是有效的 csv 格式)2。在 csv 阅读器控制器服务中将ignore csv Header column names属性更改为 True (因为您没有使用 csv 文件头)。请告诉我们您的发现 -
@Shu 我修好了。它是 ConvertRecord 处理器中的一个额外逗号。谢谢。
-
@Shu 我已经发布了我的发现和结果。谢谢你的帮助。
标签: apache amazon-s3 apache-nifi