2016-08-03 20 views
1

我有一個共同的進程組,將基於我提供的文件推斷avro模式。但我想將Avro Record Name設置爲與我提供的文件名相對應的名稱。所以我用$ {filename}。但InferAvroSchema有錯誤,說記錄名是空的。請注意,在此之前,我已將屬性「filename」設置爲flowfile屬性,並且它具有一個值,因爲我使用ReplaceText對其進行了測試,以查看是否存在$ {filename}的值InferAvroSchema Avro記錄名稱基於流屬性

回答

2

不幸的是,這看起來像InferAvroSchema 。許多屬性支持表達式語言,但是處理器不會針對傳入流文件對它們進行評估。因此,它最終只能夠使用直接鍵入屬性的值(非EL),或者來自系統屬性或環境屬性的值,這些值對於很多這些屬性沒有意義。

我創造了這個JIRA的問題: https://issues.apache.org/jira/browse/NIFI-2465

解決辦法是,所有)的調用evaluateAttributeExpressions(應在流文件中傳遞,如:

context.getProperty(CSV_HEADER_DEFINITION).evaluateAttributeExpressions(inputFlowFile).getValue()