Я пытаюсь запустить простой код, чтобы просто показать базы данных, которые я создал ранее на моем hive2-сервере. (обратите внимание, что в этом примере есть оба, примеры на python и scala, с одинаковыми результатами).
Если я войду в оболочку улья и выведу список своих баз данных, я увижу всего 3 базы данных .
Когда я запускаю Spark shell (2.3) на pyspark, я делаю все как обычно и добавляю следующее свойство в свою SparkSession:
sqlContext.setConf("hive.metastore.uris","thrift://*****:9083")
И повторнозапустите SparkContext в моем сеансе.
Если я запускаю следующую строку, чтобы увидеть все конфиги:
pyspark.conf.SparkConf().getAll()
spark.sparkContext._conf.getAll()
Я действительно вижу, что параметр был добавлен, я запускаю новый HiveContext:
hiveContext = pyspark.sql.HiveContext(sc)
Но если я перечислю свои базы данных:
hiveContext.sql("SHOW DATABASES").show()
Это не покажет те же результаты из оболочки улья.
Я немного растерялся,почему-то похоже, что он игнорирует параметр конфигурации, так как я уверен, что тот, который я использую, является моим метастарем в качестве адреса, который я получаю при запуске:
hive -e "SET" | grep metastore.uris
Тот же адрес также, если я запускаю:
ses2 = spark.builder.master("local").appName("Hive_Test").config('hive.metastore.uris','thrift://******:9083').getOrCreate()
ses2.sql("SET").show()
Может ли быть проблема с разрешением?Как будто некоторые таблицы не настроены на просмотр вне оболочки улья / пользователя.
Спасибо