Попытка прочитать таблицу сервера sql из pyspark jupyter notebook в Ubuntu - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь прочитать таблицу сервера MS SQL из блокнота pyspark jupyter в Ubuntu, но получаю ошибки.Я установил sqljdbc42.jar и указал путь, но все равно получаю ошибку.

import os
import sys

spark_path ='/usr/local/spark-2.4.3-bin-hadoop2.7'
os.environ['SPARK_HOME'] = spark_path
os.environ['HADOOP_HOME'] = spark_path

sys.path.append(spark_path + "/bin")
sys.path.append(spark_path + "/python")
sys.path.append(spark_path + "/python/pyspark/")
sys.path.append(spark_path + "/python/lib")
sys.path.append(spark_path + "/python/lib/pyspark.zip")
sys.path.append(spark_path + "/python/lib/py4j-0.9-src.zip")


from pyspark.sql import SparkSession
spark = SparkSession\
    .builder\
    .master('local[*]')\
    .appName('Connection-Test')\
    .config('spark.driver.extraClassPath', '/usr/local/sqljdbc_4.2.8112.200_enu/sqljdbc_4.2/enu/jre8/sqljdbc42.jar')\
    .config('spark.executor.extraClassPath', '/usr/local/sqljdbc_4.2.8112.200_enu/sqljdbc_4.2/enu/jre8/sqljdbc42.jar')\
    .getOrCreate()

sqlsUrl = 'jdbc:sqlserver://ip:portnumber;database=dbname'


qryStr = """ (
select * from table
    ) as table """

df=spark.read.format('jdbc')\
    .option('url',sqlsUrl)\
    .option('driver', 'com.microsoft.sqlserlver.jdbc.SQLServerDriver')\
    .option('dbtable', qryStr )\
    .option("user", "username") \
    .option("password", "password") \
    .load()

Это ошибка: Py4JJavaError: Произошла ошибка при вызове o142.load .: java.lang.ClassNotFoundException: com.microsoft.sqlserlver.jdbc.SQLServerDriver на java.net.URLClassLoader.findClass (URLClassLoader.java:382) ....

...