- sparksession経由でhiveにアクセスできない
- spark-shellからはsparksession経由ではアクセスできる.
- 一般的な対処法は試した
- hive-site.xmlを--filesオプションで設定する
- sparkそのものはhive enableでbuildする
- core-site.xml, hive-site.xml, hdfs-site.xmlはconf dirに配置
- hive-site.xmlでは適切にmetastore urlを設定している
対処法は
spark.sql.catalogImplementation=hive
を明示的にsparkconfに設定する.
sparksession生成時に,enablehivesupportするだけではだめだった.
lazy val spark = {
SparkSession
.builder()
.appName(s"${this.getClass.getSimpleName}")
.config("spark.sql.warehouse.dir", "/user/hive/warehouse")
.enableHiveSupport()
.getOrCreate()
}
↑だけでは,hiveにアクセスできず,下の実施してアクセスできた.
lazy val sc = {
val conf = new SparkConf().setAppName(s"${this.getClass.getSimpleName} action=$action date: ${date.toString("yyyy-MM-dd")} hour: $hour")
conf.set("spark.sql.catalogImplementation", "hive")
val sc = new SparkContext(conf)
sc
}