我們遇到個特別的需求,一個數據接入的流程跑的太慢,需要升級為用大數據方式去處理,提高效率。
數據:
數據csv文件用Zip 壓縮后放置在SFTP中
數據來源:
SFTP
數據操作:
文件和它的壓縮包一致,后綴不同。文件名中包含渠道、日期、操作標記("S"追加,"N"全量,"D"刪除)
升級前的操作方式:
shell腳本將文件從SFTP下載到Linux服務器本地,解壓。
歷史數據也下載下來。
根據文件名中的操作標記,對歷史數據作操作。
把新的結果數據上傳回SFTP。
SFTP上的zip數據移動到備份目錄。
升級后的操作方式:
用SFTPUtil工具類將ZIP文件轉為輸入流作為ZipInputStream的實例化的入參
將解壓流作為Hadoop的輸出流的入參,此時。
用Spark讀取Hadoop的文件抽象RDD
對於兩文件