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

时间:2017-06-17 16:10:50

标签: apache-spark amazon-redshift parquet

我能想到的几个选项

  • Spark使用Redshift连接器流回s3
  • 使用命令行工具卸载到S3 gzipped然后处理

不确定哪个更好。我不清楚如何轻松地将红移模式转换为镶木地板可以吸收的东西,但也许火花连接器会照顾我。

2 个答案:

答案 0 :(得分:1)

获取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)

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

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

我还建议使用databricks spark-redshift软件包,使批量从redshift卸载并加载到spark中更快。

答案 1 :(得分:1)

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

using Data;

您将可以在UNLOAD - Amazon Redshift

找到更多信息