Я слежу за учебником по искровому смещению, чтобы прочитать из красного смещения в искру (блоки данных).У меня есть следующий код:
val tempDir = "s3n://{my-s3-bucket-here}"
val jdbcUsername = "usernameExample"
val jdbcPassword = "samplePassword"
val jdbcHostname = "redshift.companyname.xyz"
val jdbcPort = 9293
val jdbcDatabase = "database"
val jdbcUrl = "sampleURL"
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "SAMPLEAWSKEY")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "SECRETKEYHERE")
val subs_dim = sqlContext.read.format("com.databricks.spark.redshift").option("url", jdbcUrl).option("tempdir", tempDir).option("dbtable", "example.exampledb").load()
Теперь, когда я пытаюсь запустить это, я получаю:
java.lang.IllegalArgumentException: requirement failed: You must specify a method for authenticating Redshift's connection to S3 (aws_iam_role, forward_spark_s3_credentials, or temporary_aws_*. For a discussion of the differences between these options, please see the README.
Я немного запутался, так как я определил awsAccesskeyID с помощьюsc.hadoopConfiguration.set.Я новичок в своей компании, поэтому мне интересно, если ключ AWS неправильный, или я что-то упускаю?
Спасибо!