postgresql – 无法在pyspark shell中使用jdbc连接到postgres

我在我的本地窗口上使用独立群集,并尝试使用以下代码从我们的服务器加载数据 –
from pyspark.sql import sqlContext
sqlContext = sqlContext(sc)
df = sqlContext.load(source="jdbc",url="jdbc:postgresql://host/dbname",dbtable="schema.tablename")

我已将SPARK_CLAsspATH设置为 –

os.environ['SPARK_CLAsspATH'] = "C:\Users\ACERNEW3\Desktop\Spark\spark-1.3.0-bin-hadoop2.4\postgresql-9.2-1002.jdbc3.jar"

在执行sqlContext.load时,它会引发错误,提到“找不到适合jdbc:postgresql的驱动程序”.我试过搜索网页,但无法找到解决方案.

可能会有所帮助.

在我的环境中,SPARK_CLAsspATH包含postgresql连接器的路径

from pyspark import SparkContext,SparkConf
from pyspark.sql import DataFrameReader,sqlContext
import os

sparkClasspath = os.getenv('SPARK_CLAsspATH','/path/to/connector/postgresql-42.1.4.jar')

# Populate configuration
conf = SparkConf()
conf.setAppName('application')
conf.set('spark.jars','file:%s' % sparkClasspath)
conf.set('spark.executor.extraClasspath',sparkClasspath)
conf.set('spark.driver.extraClasspath',sparkClasspath)
# Uncomment line below and modify ip address if you need to use cluster on different IP address
#conf.set('spark.master','spark://127.0.0.1:7077')

sc = SparkContext(conf=conf)
sqlContext = sqlContext(sc)

url = 'postgresql://127.0.0.1:5432/postgresql'
properties = {'user':'username','password':'password'}

df = DataFrameReader(sqlContext).jdbc(url='jdbc:%s' % url,table='tablename',properties=properties)

df.printSchema()
df.show()

这段代码允许在您需要的地方使用pyspark.例如,我在Django项目中使用过它.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...