gpt4 book ai didi

python - 读取 AWS GLUE 巨大表格的一部分的最佳方式

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:13 27 4
gpt4 key购买 nike

我在将一个大文件从我的数据湖(目前存储在 postgres 中)加载到 AWS GLUE 时遇到了一些问题。它是 4.3 十亿 行。

在测试中,我发现表格太大,无法完全读入。

这是我加载数据框的方式:

large_dynamic_frame = glueContext.create_dynamic_frame.from_catalog(database = "DBNAME",
table_name = "TABLENAME",
redshift_tmp_dir = args["TempDir"],
transformation_ctx = "TABLECTX")

重要因素

  • 我不需要整个数据框!我最终会根据几个属性进行过滤并连接较小的表。

  • 我已经尝试使用 push_down_predicate,但这需要使用特定的文件夹组织将数据存储在 S3 中,不幸的是我无法选择预先存在的此表的格式。

  • 我也试过阅读表格并简单地将其重新组织到 pushdown_predicate 工作所需的 S3 文件夹组织中,但该过程以“退出代码 1”结束5个小时的运行。

主要问题

如何在不使用下推谓词的情况下读取表格的一部分?

最佳答案

您还可以在 Glue 中使用纯 spark/pyspark 代码并利用其读取方法。您可以在他们的文档中看到如何读取 redshift或通常通过 JDBC 的任何 SQL 数据库.甚至像下面的例子一样从查询中读取数据:

# Read data from a query
df = spark.read \
.format("com.databricks.spark.redshift") \
.option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass") \
.option("query", "select x, count(*) my_table group by x") \
.option("tempdir", "s3n://path/for/temp/data") \
.load()

我发现 AWS Glue 只实现了一小部分 spark 功能,因此当您需要处理复杂的事情时,我建议您使用 spark/pySpark。

关于python - 读取 AWS GLUE 巨大表格的一部分的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53267549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com