最近在做的项目涉及到需要把hive表里面大批量的数据写入到S3,这里初步写了一个demo,记录一下过程。
数据写入到S3需要ak sk进行鉴权,在S3中,用户操作的基本数据单元是Object,Object包含key和data,其中,key是Object的名字,data是Object的数据。Bucket是存放Object的容器,所有的Object都必须存放在特定的Bucket中。Endpoint表示S3服务的访问域名。
过程比较简单,就是先把数据查询出来,然后保存时写入到S3。Spark天然支持数据写入S3,需要注意的是在session中配置鉴权信息ak sk。Spark版本是2.2.1,Scala版本是2.11,maven依赖如下:
代码demo如下:
总结:Spark本身支持写入S3,而且是可以直接把DataFrame以text格式压缩写入,非常方便,写入之前设置ak和sk。