मैंने DROP/ TRUNCATE
को आजमाया है परिदृश्य, लेकिन गोंद में पहले से बनाए गए कनेक्शन के साथ ऐसा करने में सक्षम नहीं हैं, लेकिन एक शुद्ध पायथन पोस्टग्रेएसक्यूएल ड्राइवर के साथ, पीजी8000
.
- पीपीआई से pg8000 का टार डाउनलोड करें
- खाली
__init__.py
बनाएं रूट फ़ोल्डर में - सामग्री को ज़िप करें और S3 पर अपलोड करें
- ज़िप फ़ाइल को
Python lib path
में देखें नौकरी के - डीबी कनेक्शन विवरण को जॉब पैराम्स के रूप में सेट करें (सुनिश्चित करें कि सभी प्रमुख नामों को
--
के साथ पहले से जोड़ें ) "सर्वर-साइड एन्क्रिप्शन" बॉक्स को चेक करें।
तब आप बस एक कनेक्शन बना सकते हैं और 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()