【发布时间】:2021-07-28 11:24:48
【问题描述】:
我试图在当前的红移表之上创建一个红移表, 我有一个执行以下步骤的脚本:
- 将redshift表逐块加载到pandas数据帧中,避免内存错误
- 在每个chuck中,我都整理数据并将CSV文件输出到S3中
- 运行 S3 Copy 命令将文件移动到 redshift。
这个方法很慢,因为它在加载数据到pandas数据帧时一直从Redshift查询。
为了加快这个过程,我认为可能需要
- 减少查询原表的次数
- 使用 Pyspark 代替 Pandas。
我发现 Databrick 有一个名为 spark-redshift 的包,但我发现它已经有一段时间没有维护了,而且似乎不再工作了。 我试图将数据从 s3 卸载,但由于我的角色,我没有这样做的权限。
所以我正在尝试的当前方法是使用 AWS EMR 和 Pyspark 来完成这项工作,但最难的部分似乎是将 EMR 集群连接到 redshift。
我不断收到: java.sql.SQLException: No suitable driver 错误。
我已经ssh登录到master note并下载了JDBC jar文件,现在我真的不知道缺少什么。
有什么聪明的方法可以代替我上面描述的运行缓慢的作业吗?
【问题讨论】:
-
我想你可以为 Redshift 数据库使用 PostgreSQL 驱动,这对你来说可能更容易
标签: amazon-web-services apache-spark pyspark amazon-redshift amazon-emr