我正在尝试连接到Redshift并从Glue DevEndpoint运行简单查询(这是必需的),但似乎无法连接。
以下代码超时:
df = spark.read \
.format('jdbc') \
.option("url", "jdbc:redshift://my-redshift-cluster.c512345.us-east-2.redshift.amazonaws.com:5439/dev?user=myuser&password=mypass") \
.option("query", "select distinct(tablename) from pg_table_def where schemaname = 'public'; ") \
.option("tempdir", "s3n://test") \
.option("aws_iam_role", "arn:aws:iam::147912345678:role/my-glue-redshift-role") \
.load()
可能是什么原因?
我检查了URL,用户,密码,还尝试了不同的IAM角色,但是每次都挂起。.
也尝试不使用IAM角色(仅具有URL,用户/密码,架构/表已存在)并且还挂起/超时:
jdbcDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:redshift://my-redshift-cluster.c512345.us-east-2.redshift.amazonaws.com:5439/dev") \
.option("dbtable", "public.test") \
.option("user", "myuser") \
.option("password", "mypass") \
.load()
从S3或从Glue表(目录)读取数据(直接在Glue SSH终端中)似乎很好,所以我知道Spark和Dataframes很好,只是与RedShift的连接有些连接,但不确定是什么?