Я начинаю с этого
Код: Выделить всё
import findspark
findspark.init()
from pyspark import SparkConf, SparkContext, SQLContext
from pyspark.sql import SparkSession
import pyspark.sql.types as pysparkT
Код: Выделить всё
import pyodbc
conn_str = (
r"Driver={SQL Server};"
r"Server=DESKTOP\SQLEXPRESS;"
r"Database=AdventureWorks2016;" #taken from microsoft database refrence
r"Trusted_Connection=yes;"
)
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'")
rows = cursor.fetchall()
for row in rows:
print(row)
вот в чем проблема, ниже приведен мой полный код
Код: Выделить всё
master = 'local[*]'
appname = 'testing jdbc sqlserver'
database = 'AdventureWorks2016'
username = r'DESKTOP\---'
serverName = r'DESKTOP\SQLEXPRESS'
url = f"jdbc:sqlserver://{serverName}:1433;DatabaseName={database};integratedSecurity=true;"
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
conf = SparkConf() \
.setAppName(appname) \
.setMaster(master) \
.set("spark.driver.extraClassPath", "C:\path-to-sqljdbc\mssql-jdbc-12.8.1.jre8") \
.set("spark.executor.memory", "4g") \
.set("spark.driver.memory", "4g") \
.set("spark.executor.cores", "4") \
spark = SparkSession.builder.config(conf=conf).getOrCreate()
query_table = """(
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE') custom_table"""
jcbdf = spark.read.format("jdbc") \
.option("url", url) \
.option("query", query_table) \
.option("user", username) \
.option("driver", driver) \
.load()
jcbdf.show()
Код: Выделить всё
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.ClientServerConnection.waitForCommands (ClientServerConnection.java:182)
at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
at java.lang.Thread.run(Thread.java:750)
Я пробую все, что могу найти, но, похоже, это не решает проблему. кто-нибудь знает, что я сделал не так?
Подробнее здесь: https://stackoverflow.com/questions/790 ... in-jupyter