私は現在、パンダにローカルのSQL ServerのDBからテーブルを読み込むために、次のPythonコードを持っている:コードが機能することを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