gpt4 book ai didi

python - 如何在 python 中从 redshift 更快地处理数据?

转载 作者:可可西里 更新时间:2023-11-01 15:03:53 42 4
gpt4 key购买 nike

我是 python 新手..我的数据在 redshift 中,我想在 python 中更快地处理数据。我使用 python 是因为我想运行各种算法并对这些数据进行各种计算,这在 redshift 中是不可能的。我看过教程,但每次加载 python 都需要花费太多时间。这是我的代码:

import psycopg2

con=psycopg2.connect(dbname = "xxxx", host="redshifttest-icp.cooqucvshoum.us-west-2.redshift.amazonaws.com", port= "5439", user="xxxx", password= "xxxx")
cur = con.cursor()

a = "select * from xxxx ;"

import pandas as pd
df = pd.read_sql(a,con)
df = df.fillna(0)
df2=df2.fillna(0)

这工作得很好,但我想要一些可以帮助我更快地处理数据的方法..谁能帮帮我?

最佳答案

如果您要从 Redshift 中检索大量行(超过 1 万行),最快的方法是使用 UNLOAD command将它们作为 CSV 直接提取到 S3。然后,您可以检索提取物并在 Python 中对其进行操作。

如果您要处理更大的数字(数百万),那么我怀疑您会受到 Python 速度的限制。在这种情况下,我建议使用 Spark/PySpark 和 spark-redshift package . Spark 将在幕后为您执行卸载,您的数据帧计算可以由 Spark 在服务器集群中并行执行。

# 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()

关于python - 如何在 python 中从 redshift 更快地处理数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018544/

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