В Spark есть средство чтения формата jdbc, которое вы можете использовать.
запустите оболочку scala, чтобы подтвердить, что ваш драйвер MS SQL Server находится в вашем пути к классам
пример
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
Если класс драйвера не отображается, убедитесь, что вы поместили банку на пограничный узел и включили его в свой путь к классам, где вы инициализируете свой сеанс.
пример
bin/spark-shell --driver-class-path postgresql-9.4.1207.jar --jars postgresql-9.4.1207.jar
Подключитесь к вашему MS SQL Server через Spark jdbc
пример через искровой питон
# option1
jdbcDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:postgresql:dbserver") \
.option("dbtable", "schema.tablename") \
.option("user", "username") \
.option("password", "password") \
.load()
# option2
jdbcDF2 = spark.read \
.jdbc("jdbc:postgresql:dbserver", "schema.tablename",
properties={"user": "username", "password": "password"})
особенности и дополнительные способы компиляции строк подключения можно найти здесь
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
вы упомянули jupyter ... если вы все еще не можете заставить вышеперечисленное работать, попробуйте установить некоторые env vars через этот пост (хотя не могу подтвердить, работает ли это)
https://medium.com/@thucnc/pyspark-in-jupyter-notebook-working-with-dataframe-jdbc-data-sources-6f3d39300bf6
в конце концов все, что вам действительно нужно, — это класс драйвера, размещенный на граничном узле (клиенте, где вы запускаете spark), и добавьте его к вашему пути к классам, затем установите соединение и распараллелите свой фрейм данных для масштабирования производительности, поскольку jdbc из rdbms читает данные как один поток, следовательно, 1 раздел
person
thePurplePython
schedule
22.05.2019