我有一张桌子:
trxn_dtl (
internal_key INT NOT NULL identity(1,1),
Co_Typ VARCHAR(32) ,
Co_ID VARCHAR(8) ,
Curr VARCHAR(3) ,
Prod_Cd VARCHAR(16) DEFAULT “SP” ,
Dr_Amt DECIMAL (20,6) DEFAULT 0,
Cr_Amt DECIMAL (20,6) DEFAULT 0,
Ins_By VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
Ins_DtTime TIMESTAMP NOT NULL DEFAULT SYSDATE,
Upd_By VARCHAR(20) NOT NULL DEFAULT CURRENT_USER,
Upd_DtTime TIMESTAMP NOT NULL DEFAULT SYSDATE,
)
DISTSTYLE EVEN ;
使用粘合作业,我正在从特定的csv文件插入数据。
问题1:我想根据特定的输入文件对AWS Glue作业进行参数化,该作业应该运行。我从控制台运行胶水作业时使用了以下值。但是它考虑了S3存储桶文件夹中的所有文件。
--input_file_path "s3://XXXXXX/txn_dtl_20190417_042000PM.csv"
问题2::输入文件没有审核列( ins_by, ins_dttime, upd_by, upd_dttime)
。因此,胶水作业出错。有没有办法在NULL的情况下插入默认值?
尝试以下pyspark代码,但没有运气:
AuditDefaultdDf2 = AuditDefaultdDf1.toDF().withColumn("ins_by", CURRENT_USER()))
AuditDefaultdDf3 = AuditDefaultdDf2.toDF().withColumn("upd_by", CURRENT_USER()))
timestampedDf1 = AuditDefaultdDf3.toDF().withColumn("ins_dttime", current_timestamp())
timestampedDf2 = timestampedDf1.toDF().withColumn("upd_dttime", current_timestamp())
#resolvechoice6 = DynamicFrame.fromDF(timestampedDf3, glueContext, "timestampedDf3")