postgresql – 无法在pyspark shell中使用jdbc连接到postgres
发布时间:2020-12-13 16:13:44 所属栏目:百科 来源:网络整理
导读:我在我的本地窗口上使用独立群集,并尝试使用以下代码从我们的服务器加载数据 – from pyspark.sql import SQLContextsqlContext = SQLContext(sc)df = sqlContext.load(source="jdbc",url="jdbc:postgresql://host/dbname",dbtable="schema.tablename") 我已
我在我的本地窗口上使用独立群集,并尝试使用以下代码从我们的服务器加载数据 –
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:UsersACERNEW3DesktopSparkspark-1.3.0-bin-hadoop2.4postgresql-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项目中使用过它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |