【发布时间】:2021-07-02 08:13:06
【问题描述】:
我正在尝试启动一个包含 Postgres 驱动程序 JAR 文件的 EMR 集群,以便我可以从 Postgres 加载数据并使用 PySpark 对其进行分析。我有我想包含在 S3 中的 JAR。我尝试了以下方法:
1 - 输入以下配置:
[
{
"Classification": "presto-connector-postgresql",
"Properties": {
"connection-url": "jdbc:postgresql://example.net:5432/database",
"connection-user": "MYUSER",
"connection-password": "MYPASS"
},
"Configurations": []
}
]
2 - 添加 JAR 作为自定义步骤(从 S3 中选择 JAR)
3 - 将 JAR 添加为自定义引导操作(从 S3 中选择 JAR)
这些都不起作用,我不知道如何在 Jupyter 中的第 1 步中使用连接器,并且当我启动集群时,自定义步骤/引导操作都失败了。如何启动安装了 Postgres 驱动程序的 EMR 集群,以便在 Jupyter 中查询数据?
编辑:
我使用以下引导脚本将 JAR 复制到我的主/工作节点:
#!/bin/bash
aws s3 cp s3://BUCKETNAME/postgresql-42.2.8.jar /mnt1/myfolder
但还是报如下错误:
An error was encountered:
An error occurred while calling o90.load.
: java.lang.ClassNotFoundException: org.postgresql.Driver
使用以下代码:
df = spark.read \
.format("jdbc") \
.option("url", "jdbcURL") \
.option("user", "user") \
.option("password", "password") \
.option("driver", "org.postgresql.Driver") \
.option("query", "select * from slm_files limit 100") \
.load()
df.count()
【问题讨论】:
标签: postgresql amazon-web-services jupyter-notebook amazon-emr