gpt4 book ai didi

postgresql - 带有 EMR 和 Jupyter 笔记本的 Postgres JAR

转载 作者:行者123 更新时间:2023-12-04 07:51:11 28 4
gpt4 key购买 nike

我正在尝试启动一个包含 Postgres 驱动程序 JAR 文件的 EMR 集群,以便我可以从 Postgres 加载数据并使用 PySpark 对其进行分析。我有我想包含的 JAR 存储在 S3 中。我尝试了以下操作:

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

最佳答案

在我的 Jupyter notebook 的第一个单元格中使用这段代码为我解决了这个问题:

%%configure -f
{ "conf":{
"spark.jars": "s3://JAR-LOCATION/postgresql-42.2.8.jar"
}
}

关于postgresql - 带有 EMR 和 Jupyter 笔记本的 Postgres JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66970427/

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