【问题标题】:Transforming a redshift table using Pyspark使用 Pyspark 转换红移表
【发布时间】:2021-07-28 11:24:48
【问题描述】:

我试图在当前的红移表之上创建一个红移表, 我有一个执行以下步骤的脚本:

  1. 将redshift表逐块加载到pandas数据帧中,避免内存错误
  2. 在每个chuck中,我都整理数据并将CSV文件输出到S3中
  3. 运行 S3 Copy 命令将文件移动到 redshift。

这个方法很慢,因为它在加载数据到pandas数据帧时一直从Redshift查询。

为了加快这个过程,我认为可能需要

  1. 减少查询原表的次数
  2. 使用 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


【解决方案1】:

此处已询问将您的 EMR Spark 集群连接到 Redshift:Error while Connecting PySpark to AWS Redshift

正如您从答案中看到的,有许多不同的方法可以将所需的依赖项安装到您的集群中。

【讨论】:

  • 非常感谢,关于我的用例,我也可以使用胶水对吗?我可以建立数据库连接并爬取表格,让我们在粘合作业中使用目录导入我的表格。
猜你喜欢
  • 2020-10-28
  • 2021-10-06
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
相关资源
最近更新 更多