Guest User

Untitled

a guest
Apr 20th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3,
  2. AWS Request ID: 7D8E4909FEACA905, AWS Error Code: InvalidRequest, AWS Error Message:
  3. The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
  4.  
  5. package com.databricks.spark.redshift
  6.  
  7. import com.databricks.spark.redshift.DefaultSource;
  8. import org.apache.spark.sql.sources.BaseRelation;
  9. import org.apache.spark.sql.{SparkSession, DataFrame, SQLContext}
  10. import com.amazonaws.auth.AWSCredentialsProvider
  11. import com.amazonaws.services.s3.AmazonS3Client
  12.  
  13. object RedshiftReaderM {
  14. val endpoint = "s3.ap-south-1.amazonaws.com"
  15. def getS3Client(provider:AWSCredentialsProvider):AmazonS3Client = {
  16. val client = new AmazonS3Client(provider);
  17. client.setEndpoint(endpoint);
  18. client
  19. }
  20. def getDataFrameForConfig(configs:Map[String,String], sparkSession:SparkSession):DataFrame = {
  21. val sqlContext = sparkSession.sqlContext
  22. val source:DefaultSource = new DefaultSource(new JDBCWrapper(),getS3Client)
  23. val br:BaseRelation = source.createRelation(sqlContext, configs)
  24. sparkSession.baseRelationToDataFrame(br);
  25. }
  26. }
  27.  
  28. import com.databricks.spark.redshift._
  29.  
  30. sc.hadoopConfiguration.set("fs.s3a.endpoint","s3.ap-south-1.amazonaws.com")
  31. System.setProperty("com.amazonaws.services.s3.enableV4", "true")
  32.  
  33. val options = Map( "query" -> "select * from tbl limit 10",
  34. "url" -> "jdbc:redshift:/<redshift-host>:5439/<database>?user=<user>&password=<password>",
  35. "tempdir" -> "s3a://bucket/ks1/ks2/",
  36. "aws_iam_role" -> "arn:aws:iam::<accountid>:role/<iam-role>"
  37. )
  38. val df = RedshiftReaderM.getDataFrameForConfig(options, spark)
  39. df.show
Add Comment
Please, Sign In to add comment