从S3(客户端)获取数据到我们的S3(公司)

时间:2018-01-03 04:33:08

标签: pandas amazon-web-services apache-spark amazon-s3 pyspark

我们要求从作为客户端位置的存储桶中获取.csv文件(它们将提供S3存储桶信息和所需的其他信息)。我们每天都需要将这些数据提取到S3存储桶中,以便我们进一步处理。请提供我们可以用来实现结果的最佳方法/技术。

我打算用Python boto(或Pandas或Pyspark)或Spark来做;原因是,一旦我们得到这些数据,它可能会被进一步处理。

2 个答案:

答案 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),而不需要你自己的任何一个涉及的虚拟机。