나는 현재 팬더로 로컬 SQL 서버 DB에서 테이블에 읽을 수있는 다음과 같은 파이썬 코드가 있습니다Pyspark Pyodbc에 상응 하는가?
import pandas as pd
import pyodbc
# Connect to DB
server = 'server'
db = 'db'
conn = pyodbc.connect('DRIVER={SQL SERVER}; SERVER=' + server + '; DATABASE=' + db + '; TRUSTED_CONNECTION=yes')
cursor = conn.cursor()
table = 'table'
df = pd.read_sql('Select * From ' + table, conn)
그 코드가 작동,하지만 지금은 Pyspark에서 같은 일을하고 싶습니다. Pyspark에서이 코드와 동일한 것은 무엇입니까?
는import findspark
import os
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
# didn't know which of these would work so tried both
os.environ['SPARK_CLASSPATH'] = 'path/to/sqljdbc42.jar'
os.environ['driver-class-path'] = 'path/to/sqljdbc42.jar'
findspark.init('C:/spark/spark')
spark = SparkSession \
.builder \
.appName("SparkCoreTest") \
.getOrCreate()
sc = spark.sparkContext
sqlctx = SQLContext(sc)
server = 'server'
db = 'db'
url = 'jdbc:sqlserver//' + server + ';databaseName=' + db
table = 'table'
properties = {'driver' : 'com.microsoft.sqlserver.jdbc.SQLServerDriver'}
df = sqlctx.read.format('jdbc').options(url=url, dbtable=table, driver='{SQL SERVER}').load()
이 java.lang.ClassNotFoundException: {SQL SERVER}
을 제공합니다
나는 다음과 같은 노력했다. 이 과정에서 나는 "적합한 드라이버"를 찾을 수 없다는 오류가 발생했는데, 나는 이것을 os.environ
을 수정하여 수정했다고 생각한다. 어떤 도움이라도 대단히 감사하겠습니다!
당신은 분명히 "pyodbc의 pyspark equivalent"를 의미합니다 ... – desertnaut