如何将表从 redshift 导出为 Parquet 格式?

How do I export tables from redshift into Parquet format?

我能想到的几个选项

不确定哪个更好。我不清楚如何轻松地将 redshift 模式转换为 parquet 可以接受的东西,但也许 spark 连接器会为我解决这个问题。

获取 Redshift JDBC jar 并将 sparkSession.read.jdbc 与我的示例中的 redshift 连接详细信息一起使用:

val properties = new java.util.Properties() 
properties.put("driver", "com.amazon.redshift.jdbc42.Driver") 
properties.put("url", "jdbc:redshift://redshift-host:5439/") 
properties.put("user", "<username>") properties.put("password",spark.conf.get("spark.jdbc.password", "<default_pass>")) 
val d_rs = spark.read.jdbc(properties.get("url").toString, "data_table", properties)

我的相关博客post:http://garrens.com/blog/2017/04/09/connecting-apache-spark-to-external-data-sources/

在这种情况下,Spark 流应该无关紧要。

我还建议使用 databricks spark-redshift 包,以便更快地从 redshift 中卸载并加载到 spark 中。

不再需要 Spark。我们可以直接将 Redshift 数据以 Parquet 格式卸载到 S3。示例代码:

UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
FORMAT PARQUET

您可以在 UNLOAD - Amazon Redshift

找到更多信息