Я пишу приложение java spark, в котором я хочу прочитать данные с удаленного сервера улья, на котором поверх аутентификации kerberos. Я могу войти в систему с помощью моей таблицы ключей и тарифа через систему Kerberos, но когда я использую приведенный ниже код, я получаю пустой результат
SparkSession sparkSession =
SparkSession.builder().appName("data-sync-with-spark").master("local").getOrCreate();
System.out.println("Spark Session Created");
*** this one works fine **
// Dataset dataset = sparkSession.sql(Queries.MY_TABLE);
try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Dataset dataset =
sparkSession
.read()
.format("jdbc")
.option("url", configProperties.getProperty("datasync.datasource.jdbc-url", ""))
.option("user", configProperties.getProperty("datasync.datasource.username", ""))
.option("password", configProperties.getProperty("datasync.datasource.password", ""))
.option("dbtable", Queries.MY_TABLE)
.load();
dataset.printSchema();
dataset.show(100);
Закомментированная строка работает нормально, когда я включаю HiveSupport при создании сеанса спарк-сессии. Но для этого мне нужно передать файл hive-site. xml, core-site. xml, hdfs-site. xml и yarn-site. xml в коде. Я просто хочу использовать некоторые функции spark и не хочу подключаться к комиссионному серверу. Пожалуйста, предложите какое-нибудь решение.
Я использую встроенную искру, используя intellij, а сервер улья, который я пытаюсь подключить, находится в кластере. Таким образом, используя jdb c url для подключения.