После нескольких тестов я смог придумать простой (без аутентификации) код, который работает для меня.
Важно отметить, что если вы хотите сделать временные таблицы доступными через JDBC, вам нужно запустить Thrift-сервер в той же JVM (то же самое задание на запуск) и убедиться, что код зависает, чтобы приложение продолжало работать в кластере.
После рабочего примера кода, который я создал для справки:
import time
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
from py4j.java_gateway import java_import
spark = SparkSession \
.builder \
.appName('the_test') \
.enableHiveSupport()\
.config('spark.sql.hive.thriftServer.singleSession', True)\
.config('hive.server2.thrift.port', '10001') \
.getOrCreate()
sc=spark.sparkContext
sc.setLogLevel('INFO')
java_import(sc._gateway.jvm, "")
from pyspark.sql import Row
l = [('John', 20), ('Heather', 34), ('Sam', 23), ('Danny', 36)]
rdd = sc.parallelize(l)
people = rdd.map(lambda x: Row(name=x[0], age=int(x[1])))
people = people.toDF().cache()
peebs = people.createOrReplaceTempView('peebs')
sc._gateway.jvm.org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.startWithContext(spark._jwrapped)
while True:
time.sleep(10)
Я просто использовал вышеупомянутый .py в моей искровой отправке, и я смог подключиться через JDBC через beeline и с помощью DBeaver с помощью драйвера Jive для Hive.