PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nie można połączyć się z postgresem za pomocą jdbc w powłoce pyspark

Może to będzie pomocne.

W moim środowisku SPARK_CLASSPATH zawiera ścieżkę do konektora 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()

Ten fragment kodu pozwala używać pyspark tam, gdzie potrzebujesz. Na przykład użyłem go w projekcie Django.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pisać wielką literą każdego słowa w PostgreSQL

  2. Znajdź rodzica rekurencyjnie za pomocą Query

  3. Wstaw tekst z pojedynczymi cudzysłowami w PostgreSQL

  4. Biblioteka nie załadowana:/usr/local/opt/readline/lib/libreadline.6.2.dylib

  5. Odrzuć część milisekundową ze znacznika czasu