目的:使用tFileList組件,讀取文件夾下的所有文件,輸出每個文件內的數據
組件:tFileList,tFileInputDelimited,tLogRow
1.tFileList連接時使用迭代連接
2.設置讀取文件路徑,文件列表類型選擇“文件”
3.設置tFileInputDelimited
3.1讀取的文件名,使用全局變量的方法:((String)globalMap.get("tFileList_1_CURRENT_FILEPATH")),其中tFileList_1是組件名,CURRENT_FILEPATH是迭代時的當前文件名,屬於全局變量(全局變量查詢官方文檔)
3.2 分隔符設定:取入csv文件,在tlogrow輸出中,可以看到,是以","爲分隔符的,所以,建議設置","
3.3 schema設置,取入文件的字段名需要在這裏設置,否則,會提示“schema未定義”,導致tlogrow無法輸出內容
4.取入文件及文件格式
之所以修改了字段名,是輸出前的猜想,我認爲他會自動匹配不同的字段進行讀取,運行結果證明是錯的
5.run
結果很明顯,age列是空的,而原本在age列的數據,依然出現在了id列
所以,tFileInputDelimited在讀取文件時,不識別所讀取的文件內的文件名,他要求讀取文件內容格式統一:例如字段位置和字段數量,而在schema中的字段設置,則是人爲的將數據和字段名進行一一匹配