从 Spark 程序连接 DynamoDB,以使用 Python 从一个表中加载所有项目



我编写了一个程序将项目写入 DynamoDB 表。现在,我想使用 PySpark 读取 DynamoDB 表中的所有项目。在 Spark 中是否有任何库可用于执行此操作?

您可以通过 boto3 使用作为 DynamoDB API 一部分提供的并行扫描,也可以使用此处所述的为 PySpark 编写的并行 S3 文件处理应用程序等方案。基本上,无需先验地读取所有键,只需创建一个段号列表,并在 Spark 的map_func函数中对要扫描的最大段数进行硬编码。

另一种选择是将 DynamoDB 行导出到 S3。 您可以使用 S3 上的触发器来启动 Lambda,甚至可以手动处理生成的文件。 对我来说,出口是一个很好的选择,因为它发生得如此之快。 导出 1 TB 大约需要一个小时,即大约 10 亿行。 从那里您可以完全灵活地进行分析。

最新更新