我们要求从作为客户端位置的存储桶中获取.csv文件(它们将提供S3存储桶信息和所需的其他信息)。我们每天都需要将这些数据提取到S3存储桶中,以便我们进一步处理。请提供我们可以用来实现结果的最佳方法/技术。
我打算用Python boto(或Pandas或Pyspark)或Spark来做;原因是,一旦我们得到这些数据,它可能会被进一步处理。
答案 0 :(得分:0)
您可以使用S3复制选项尝试S3跨帐户对象副本。这是更安全和建议的。请通过以下链接了解更多详情。它也适用于相同帐户的不同存储桶。复制后,您可以使用自定义代码(python)触发一些lambda函数来处理.csv文件。
How to copy Amazon S3 objects from one AWS account to another by using the S3 COPY operation
答案 1 :(得分:0)
如果您的客户将数据保存在您的帐户被授予访问权限的s3存储桶中,则应该可以将.csv文件用作spark作业的直接数据源。使用s3a://theirbucket/nightly/*.csv作为RDD源,并将其保存到s3a:// mybucket / somewhere,理想情况下使用CSV以外的格式(Parquet,ORC,...)。这使您可以将格式的基本转换转换为更易于使用的格式。
如果你只想要原始的CSV文件,那么S3 Copy操作就是你所需要的,因为它在S3本身内复制数据(如果在同一个S3位置,则为6 + MiB / s),而不需要你自己的任何一个涉及的虚拟机。