为了账号安全,请及时绑定邮箱和手机立即绑定

AWS Wrangler 在 Python 中建立引擎连接时出错,必须指定区域?

AWS Wrangler 在 Python 中建立引擎连接时出错,必须指定区域?

慕后森 2023-12-12 09:51:27
这可能是一个简单的修复,但我无法运行此代码。我一直在 Pycharm 2020.2.3 上使用 AWS Secrets Manager,没有出现任何问题。然而,AWS Wrangler 的问题如下:读入数据框test_df = pd.read_csv(source, encoding='latin-1')检查 df 数据类型data_types_df = test_df.dtypesprint('Data type of each column of Dataframe:')print(data_types_df)将列转换为正确的数据类型test_df['C'] = pd.to_datetime(test_df['C'])test_df['E'] = pd.to_datetime(test_df['E'])检查 df 数据类型df_new = test_df.dtypesprint('Data type of each column of Dataframe:')print(df_new)我已经尝试了下面的两个片段,但出现了相同的错误:engine = wr.catalog.get_engine("aws-data-wrangler-redshift", region_name=region_name)engine = wr.catalog.get_engine('redshift+psycopg2://' + Username + ":" + Password + ClusterURL)错误:botocore.exceptions.NoRegionError: You must specify a region.然后我将尝试使用以下两种方法之一将 Pandas Dataframe 转换为 redshift 中的自定义表:path = f"s3://{bucket}/stage/"iam_role = 'ARN'将 df 复制到 redshift 自定义表wr.db.copy_to_redshift(    df=df_new,    path=path,    con=engine,    schema="custom",    table="test_df",    mode="overwrite",    iam_role=iam_role,    primary_keys=["c"])熊猫 df 到红移wr.pandas.to_redshift(    dataframe=df_new,    path=path,    schema="custom",    table="test_df",    connection=con,    iam_role="YOUR_ROLE_ARN",    mode="overwrite",    preserve_index=False)任何帮助将非常感激 :)
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

Data Wrangler 在底层使用 Boto3。Boto3 将查找AWS_DEFAULT_REGIONenv 变量。所以你有两个选择:

在您的文件中设置~/.aws/config

[default]  
region=us-east-1

或者将其设置为 PC 中的环境变量:

export AWS_DEFAULT_REGION=us-east-1

更具体地说,您可以在 PyCharm 中设置环境变量


查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 37 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信