PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como salvar String como tipo JSONB no postgres ao usar o AWS Glue


Prefiro usar o dataframe nativo do Spark, porque me permite mais personalização. Posso usar stringtype propriedade para converter o campo json do dataframe para o campo jsonb na tabela. Para este caso, meu dataframe tem dois campos.
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)

Antes de executar o script acima, você deve criar a tabela em postgresql, pois a propriedade mode está definido como anexar . Isto como segue:
create table your_tablename
(
    my_json_field jsonb,
    another_field int
)