我進來的流文件,這在下面的格式已經固定寬度的數據:應用字符串處理/數學運算的流文件的內容在nifi
ABC 0F 15343543543454434 gghhhhhg ABC 01 433534343434 hjvh
我想有我以下面的格式輸出數據:
ABC|15|15343543543454434|gghhhhhg ABC|1|433534343434|hjvh
得到這個輸出我需要第二場轉換在每一行base10整數並應用帶操作,將所有其它字段s修剪白色空間。
我試過使用replaceText處理器,但我找不到將第二個字段轉換爲base10整數或將條形函數應用於字符串字段的方法。
謝謝您的回覆。不過,我有一個後續問題。我的假設是,Radix函數從基數10轉換爲任何其他基數。我的要求是將十六進制轉換爲十進制。你能解釋一下$ {'$ 2':prepend('0x'):append('p0'):toRadix(10)}如何將OF轉換爲15? 此外,我嘗試了表達式,但由於以下錯誤而失敗:java.lang.classCastException –
你是對的「toRadix」我正在使用它的方式是錯誤的,但仍然正常工作。它應該替換爲「toNumber()」。該表達式所做的是將其格式化爲將被接受爲「十進制」,然後將其轉換爲整數。對於NIFI-2950,我還增加了一個「fromRadix」功能,可以從一個基座轉換爲10個基座。當您嘗試表達時,您是使用最新版本的主版本還是已發佈的NiFi版本進行操作? – JDP10101
我剛剛發佈了一個Pull Request(PR),爲整數十六進制值和fromRadix()函數添加了適當的支持。請隨時對github上的PR進行測試併發布反饋。這應該允許你簡單地執行「$ {'$ 2':fromRadix(16)}」。這裏是鏈接:https://github.com/apache/nifi/pull/1161 – JDP10101