sql >> Database >  >> RDS >> PostgreSQL

String opslaan als JSONB-type in postgres bij gebruik van AWS Glue

Ik gebruik liever een native spark-dataframe, omdat ik dan meer maatwerk kan hebben. Ik kan stringtype . gebruiken eigenschap om het json-veld van het dataframe naar het jsonb-veld in de tabel te casten. In dit geval heeft mijn dataframe twee velden.

from pyspark import SparkConf

sc = SparkContext.getOrCreate(SparkConf())
spark = SparkSession(sc)

df = spark.read.format('csv') \
               .option('delimiter','|') \
               .option('header','True') \
               .load('your_path') 

##some transformation...

url = 'jdbc:postgresql://your_host:5432/your_databasename'
properties = {'user':'*****',
              'password':'*****',
              'driver': "org.postgresql.Driver",
              'stringtype':"unspecified"}
        
df.write.jdbc(url=url, table='your_tablename', mode='append', properties=properties)

Voordat u het bovenstaande script uitvoert, moet u de tabel in postgresql maken, omdat de eigenschap mode is ingesteld als toevoegen . Dit als volgt:

create table your_tablename
(
    my_json_field jsonb,
    another_field int
)



  1. Psycopg2-query die Decimal ('value') retourneert

  2. Voeg meerdere rijen samen in enkele rijen in MySQL

  3. Wijzig beveiligingsgroep op AWS RDS-database-instantie

  4. PHP sorteren van geserialiseerde gegevens