Saya sudah mencoba DROP/ TRUNCATE
skenario, tetapi belum dapat melakukannya dengan koneksi yang sudah dibuat di Lem, tetapi dengan driver Python PostgreSQL murni, pg8000
.
- Unduh tar pg8000 dari pypi
- Buat
__init__.py
yang kosong di folder root - Zipkan konten &unggah ke S3
- Referensikan file zip di
Python lib path
pekerjaan - Tetapkan detail koneksi DB sebagai parameter pekerjaan (pastikan untuk menambahkan semua nama kunci dengan
--
). Centang kotak "Enkripsi sisi server".
Kemudian Anda cukup membuat koneksi dan menjalankan SQL.
import sys
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.dynamicframe import DynamicFrame
from awsglue.job import Job
import pg8000
args = getResolvedOptions(sys.argv, [
'JOB_NAME',
'PW',
'HOST',
'USER',
'DB'
])
# ...
# Create Spark & Glue context
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
# ...
config_port = 5432
conn = pg8000.connect(
database=args['DB'],
user=args['USER'],
password=args['PW'],
host=args['HOST'],
port=config_port
)
query = "TRUNCATE TABLE {0};".format(".".join([schema, table]))
cur = conn.cursor()
cur.execute(query)
conn.commit()
cur.close()
conn.close()