sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man sparar String som JSONB-typ i postgres när man använder AWS Glue

Jag föredrar att använda inbyggd sparkdataram, eftersom det tillåter mig mer anpassning. Jag kan använda stringtype egenskap för att kasta json-fält från dataram till jsonb-fält i tabellen. I det här fallet har min dataram två fält.

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)

Innan du kör ovanstående skript bör du skapa tabellen i postgresql, eftersom egenskapen mode är inställd som lägg till . Detta som följer:

create table your_tablename
(
    my_json_field jsonb,
    another_field int
)



  1. CI - visa databasfel eller misslyckas

  2. Ställ in nyckel-/värdepar i sessionskontexten i SQL Server (sp_set_session_context)

  3. MySQL:SyntaxError:Oväntad identifierare

  4. Hur man upptäcker UTF-8-tecken i en Latin1-kodad kolumn - MySQL