scala - 如何将 S3 存储桶中的 csv 文件转换为 RDD
问题描述
我对这个主题很陌生,所以任何帮助都将不胜感激。
我试图读取存储在 S3 存储桶中的 csv 文件并将其数据转换为 RDD 以直接使用它,而无需在本地创建文件。
到目前为止,我已经能够使用 AmazonS3ClientBuilder 加载文件,但我唯一要做的就是将文件内容放在 S3ObjectInputStream 中,我无法使用它的内容。
val bucketName = "bucket-name"
val credentials = new BasicAWSCredentials(
"acessKey",
"secretKey"
);
val s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_2)
.build();
val s3object = s3client.getObject(bucketName, "file-name.csv")
val inputStream = s3object.getObjectContent()
....
我也尝试使用 BufferedSource 来处理它,但是一旦完成,我不知道如何将其转换为数据帧或 RDD 来处理它。
val myData = Source.fromInputStream(inputStream)
....
解决方案
最后,我能够得到我正在寻找的结果,看看https://gist.github.com/snowindy/d438cb5256f9331f5eec
推荐阅读
- c - 使用分叉和线程跟踪程序的技术
- r - R 中对两个数据集的列执行多项操作的函数
- java - java StringBuffer 发送电子邮件某些部分 html 某些部分 java 格式已更新
- scala - 在scalatest中使用什么代替符号?
- sql - 从子查询聚合时如何更正错误
- verilog - 带有“数字符号”的模块实例化
- openlayers - 在地图中生成真正的点圈
- python - Python正则表达式匹配一个或多个换行符?
- django - 我可以看到 django 管理端发生了什么吗?
- ruby - Merging hashes with values having the same key getting appended