【问题标题】:writing pyspark DF into Redshift将 pyspark DF 写入 Redshift
【发布时间】:2018-07-26 12:33:08
【问题描述】:

我已经使用以下代码在 Pyspark 和 Redshift 之间建立了连接。

import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker
import psycopg2
DATABASE = "d"
USER = "user1"
PASSWORD = "1234"
HOST = "sparkvalidation.crv9zfdiseqm.us-west-2.redshift.amazonaws.com"
PORT = "5439"
SCHEMA = "public"    
connection_string = "redshift+psycopg2://%s:%s@%s:%s/%s" % (USER,PASSWORD,HOST,str(PORT),DATABASE)
engine = sa.create_engine(connection_string)
session = sessionmaker()
session.configure(bind=engine)
s = session()
SetPath = "SET search_path TO %s" % SCHEMA
s.execute(SetPath)

现在如何将 pyspark 数据帧写入 Redshift?

【问题讨论】:

    标签: pyspark


    【解决方案1】:

    如果你使用 DataBricks,你可以这样写:

    dataframe.write \
      .format("com.databricks.spark.redshift") \
      .option("url", connection_string) \
      .option("dbtable", "target") \
      .option("tempdir", "s3a://your_s3_tmp_bucket/tmp_data") \
      .mode("error") \
      .save()
    

    请注意,您需要一个 s3 存储桶,因为在将数据复制到 redshift 时通常会出现这种情况

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 2020-04-03
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多