将数据从Amazon Redshift加载到HDFS

时间:2018-06-08 13:07:54

标签: scala amazon-web-services apache-spark amazon-s3 amazon-redshift

我正在尝试将数据从Amazon Redshift加载到HDFS。

val df = spark.read.format("com.databricks.spark.redshift")
    > .option("forward_spark_s3_credentials", "true").option("url",
    > "jdbc:redshift://xxx1").option("user","xxx2").option("password",
    > "xxx3") .option("query", "xxx4") .option("driver",
    > "com.amazon.redshift.jdbc.Driver") .option("tempdir", "s3n://xxx5")
    > .load()

这是我正在使用的Scala代码。当我执行df.count()df.printSchema()时,它会给我正确的架构和计数。但是,当我执行df.show()或尝试将其写入hdfs时,它会说

  

S3ServiceException:您提供的AWS Access Key ID在我们的记录中不存在。状态403,错误InvalidAccessKeyId

1 个答案:

答案 0 :(得分:0)

您需要导出以下环境变量才能写入s3。

导出AWS_SECRET_ACCESS_KEY = XXX

导出AWS_ACCESS_KEY_ID = XXX