intellij(spark)-->配置单元(远程)--s3上的存储(orc格式)无法通过spark/scala读取远程配置单元表。
能够读取表架构,但无法读取表。
错误-线程“main”java.lang.illegalargumentexception中出现异常:必须将aws访问密钥id和机密访问密钥分别指定为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()
}
}`
2条答案
按热度按时间hxzsmxv21#
你需要在所有
fs.
带的选项spark.hadoop
如果您在spark配置中设置它们。如前所述:如果可以的话,使用s3a而不是s3n。kh212irz2#
试试这个: