Я новичок в .NET для Apache Spark. Я пытаюсь подключить postgresql DB. Но получаю эту ошибку: сбой при выполнении метода JVM: нестатический метод jdbc для класса 6 при вызове с 3 аргументами
DOTNET_WORKER_DIR = C:\bin\Microsoft.Spark.Worker-0.5.0
HADOOP_HOME = C:\bin\spark-2.4.1-bin-hadoop2.7\
SPARK_HOME = C:\bin\spark-2.4.1-bin-hadoop2.7\
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_221
Dotnet framework version = 2.2
Nuget spark package = "Microsoft.Spark/0.5.0"
%SPARK_HOME%\bin\spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local
bin\Debug\netcoreapp2.2\microsoft-spark-2.4.x-0.5.0.jar dotnet bin\Debug\netcoreapp2.2\myapp.dll
var spark2 = SparkSession.Builder().AppName("test_postgresql").GetOrCreate();
DataFrame frame= spark2.Read().Format("jdbc").Option("url", "jdbc:postgresql://host:5432/xxx?user=postgres&password=xxxx")
.Option("query", "SELECT name FROM public.\"xxxx\"")
.Load();
Когда я пытаюсь исправить проблему, я обнаружил журнал ошибок об отсутствии подходящего драйвера. Поэтому я попытался загрузить драйвер JDBC Microsoft SQL Server 2.0 и драйвер jdbc postgresql и поместить эти файлы jar в папку C: \ bin \ spark-2.4.1-bin-hadoop2.7 \ jars.
- postgresql-42.2.8.jar
- sqljdbc.jar
- sqljdbc4.jar
И найдите пример подключения к postgresql
DataFrame jdbcDf = spark.Read()
.Format("jdbc")
.Options(
new Dictionary<string, string>
{
{"url", "jdbc:postgresql:192.168.10.198:5432/dbname"},
{"dbtable", "Roles"},
{"user", "postgres"},
{"password", "XXXX"},
{"ssl", "false"}
})
.Load();
Теперь я исправляю ошибку «нет подходящего драйвера», помещая файлы JAR, но теперь я беру эту ошибку:
[Ошибка] [JvmBridge] org.postgresql.ut il.PSQLException: Соединение сlocalhost: 5432 отказано. Убедитесь, что имя хоста и порт указаны правильно и что администратор почты принимает соединения TCP / IP.
Но я не пытаюсь подключиться к localhost.