Аутентификация библиотеки Spark-REDSHIFT?вопрос - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь записать данные из моего приложения Pyspark в кластер Redshift, после того, как столкнулся с десятками странных исключений, я думаю, что я пришел к правильной композиции JAR, которую я использую: Среда: - Spark 2.2.1 - Scala 2.11 -Python 2.7

JAR - mysql -nector-java-8.0.13.jar - RedshiftJDBC42-1.2.10.1009.jar - spark-redshift_2.11-3.0.0-preview1.jar - aws-java-sdk-1.7.4.jar - hadoop-aws-2.7.3.jar - spark-avro_2.11-4.0.0.jar

df.write.format("com.databricks.spark.redshift") 
    .option("url", url) 
    .option("dbtable", '{}'.format(table_name)) 
    .option("tempdir", tempdir)
    .mode('{}'.format(mode))
    .save()

где tempdir = "s3a: // tempdir /", поэтому яиспользование s3a FS

Это приводит к

pyspark.sql.utils.IllegalArgumentException: u "требование не выполнено: необходимо указать метод для проверки подлинности соединения Redshift с S3 (aws_iam_role, forward_spark_s3_credentials), или временные_строки_ *. Для обсуждения различий между этими параметрами см. README. "

Однако оба первых двух метода приводят к сочетанию различных исключений вокруг сегментов, таких как:

  • 19/02/11 21: 05: 25 WARN Utils $: при попытке определить область корзины S3 произошла ошибка com.amazonaws.services.s3.model.AmazonS3Exception: код состояния: 403, служба AWS: Amazon S3
  • 19/02/ 11 21:05:25 WARN Utils $: при попытке прочитать конфигурацию жизненного цикла корзины S3 com.amazonaws.services.s3.model.AmazonS3Exception: код состояния: 403, служба AWS: Amazon S3

Эта проблема сводит меня с ума, пожалуйста, помогите!

...