intellij(spark)---> Hive(远程)---存储在S3(orc格式) 无法通过spark / scala读取远程Hive表。
能够读取表模式但无法读取表。
错误 - 线程“main”中的异常java.lang.IllegalArgumentException: 必须将AWS Access Key ID和Secret Access Key指定为 s3 URL的用户名或密码(或分别),或通过设置 fs.s3.awsAccessKeyId或fs.s3.awsSecretAccessKey属性 (分别)。
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.sql.{Encoders, SparkSession}
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.sql.hive.orc._
import org.apache.spark.sql.types.StructType
object mainclas {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder
.master("local[*]")
.appName("hivetable")
.config("hive.metastore.uris", "thrift://10.20.30.40:9083")
.config("access-key","PQHFFDEGGDDVDVV")
.config("secret-key","FFGSGHhjhhhdjhJHJHHJGJHGjHH")
.config("format", "orc")
.enableHiveSupport()
.getOrCreate()
val res = spark.sqlContext.sql("show tables").show()
val res1 =spark.sql("select *from ace.visit limit 5").show()
}
}`
答案 0 :(得分:1)
试试这个:
val spark = SparkSession.builder
.master("local[*]")
.appName("hivetable")
.config("hive.metastore.uris", "thrift://10.20.30.40:9083")
.config("fs.s3n.awsAccessKeyId","PQHFFDEGGDDVDVV")
.config("fs.s3n.awsSecretAccessKey","FFGSGHhjhhhdjhJHJHHJGJHGjHH")
.config("format", "orc")
.enableHiveSupport()
.getOrCreate()
答案 1 :(得分:0)
如果要在spark配置中设置fs.
选项,则需要在spark.hadoop
前加let first = storyboard.instantiateViewController(withIdentifier: "firstID")
self.present(first , animated: false, completion: nil)
前缀。如上所述:如果可以,请使用s3a而不是s3n。