sql >> データベース >  >> RDS >> PostgreSQL

pysparkシェルでjdbcを使用してpostgresに接続できません

    役に立つかもしれません。

    私の環境では、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プロジェクトで使用しました。



    1. MySQLでビューを更新する方法

    2. PostgreSQL:JSON列から属性を削除します

    3. AmazonRDSを使用したPostgreSQLの実行

    4. SQLServerデータベース内のすべてのNull列とNotNull列のリストを取得する-SQLServer/T-SQLチュートリアルパート53