Spark- Spark从SFTP中读取zip压缩文件数据做计算
我们遇到个特别的需求,一个数据接入的流程跑的太慢,需要升级为用大数据方式去处理,提高效率。
数据:
数据csv文件用Zip 压缩后放置在SFTP中
数据来源:
SFTP
数据操作:
文件和它的压缩包一致,后缀不同。文件名中包含渠道、日期、操作标记("S"追加,"N"全量,"D"删除)
升级前的操作方式:
shell脚本将文件从SFTP下载到Linux服务器本地,解压。
历史数据也下载下来。
根据文件名中的操作标记,对历史数据作操作。
把新的结果数据上传回SFTP。
SFTP上的zip数据移动到备份目录。
升级后的操作方式:
用SFTPUtil工具类将ZIP文件转为输入流作为ZipInputStream的实例化的入参
将解压流作为Hadoop的输出流的入参,此时。
用Spark读取Hadoop的文件抽象RDD
对于两文件