Amazon web services 使用Pyspark转换红移表

Amazon web services 使用Pyspark转换红移表,amazon-web-services,apache-spark,pyspark,amazon-redshift,amazon-emr,Amazon Web Services,Apache Spark,Pyspark,Amazon Redshift,Amazon Emr,我试图在当前的红移表上创建一个红移表, 我有一个脚本可以执行以下步骤: 将红移表逐块加载到dataframe中以避免内存错误 在每个chuck中,我都会整理数据并将CSV文件输出到S3中 运行s3copy命令将文件移动到红移 这种方法非常慢,因为在将数据加载到dataframe时,它会保持红移查询 为了加快进程,我认为可能需要 减少查询原始表的次数 用Pyspark代替熊猫 我发现Databrick有一个名为spark redshift的软件包,但我发现它已经有一段时间没有维护了,而且似乎不再工

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

  • 将红移表逐块加载到dataframe中以避免内存错误
  • 在每个chuck中,我都会整理数据并将CSV文件输出到S3中
  • 运行s3copy命令将文件移动到红移
  • 这种方法非常慢,因为在将数据加载到dataframe时,它会保持红移查询

    为了加快进程,我认为可能需要

  • 减少查询原始表的次数
  • 用Pyspark代替熊猫
  • 我发现Databrick有一个名为spark redshift的软件包,但我发现它已经有一段时间没有维护了,而且似乎不再工作了。 我试图将数据从卸载到s3,但由于我的角色,我没有这样做的权限

    因此,目前我尝试的方法是使用AWS EMR和Pyspark来完成这项工作,但最困难的部分似乎是将EMR集群连接到redshift。 我不断得到
    :java.sql.SQLException:没有合适的驱动程序
    错误。 我让ssh登录到masternote并下载jdbcjar文件,现在我真的不知道缺少了什么


    是否有任何智能方法来替换我上面描述的运行缓慢的作业?

    这里已经询问了将您的EMR Spark cluster连接到Redshift的问题:


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

    非常感谢,关于我的用例,我也可以使用glue,对吗?我可以设置数据库连接并对表进行爬网,让我在一个粘合作业中使用catalog导入我的表。我想您可以使用PostgreSQL驱动程序进行红移数据库,这对您来说可能更容易