hadoop – 你能使用Spark SQL / Hive / Presto直接从Parquet / S3复制到Redshift吗?

我们在S3中存储了大量的服务器数据(很快就会以Parquet格式存储).数据需要一些转换,因此它不能是S3的直接副本.我将使用Spark来访问数据,但我想知道是不是用Spark操纵它,写回S3,然后复制到Redshift如果我可以跳过一步并运行查询来拉/变换数据然后直接复制到Redshift?
当然,完全有可能.

Scala代码读取镶木地板(取自here)

val people: RDD[Person] = ... 
people.write.parquet("people.parquet")
val parquetFile = sqlContext.read.parquet("people.parquet") //data frame

用于写入redshift的Scala代码(取自here)

parquetFile.write
.format("com.databricks.spark.redshift")
.option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass")
.option("dbtable", "my_table_copy")
.option("tempdir", "s3n://path/for/temp/data")
.mode("error")
.save()
相关文章
相关标签/搜索