используя это в качестве начальной команды ...
PYSPARK_DRIVER_PYTHON=/opt/miniconda/bin/python nohup spark-submit --deploy-mode client --packages com.databricks:spark-redshift_2.10:3.0.0-preview1 --jars RedshiftJDBC4-1.2.1.1001.jar s3_to_redshift_ingest.py -t tbl_tbl_name -ic 201809 > tbl_tbl_name_dev.txt 2>&1
Я вижу, что df успешно записывается в временный каталог S3, но мой скрипт зависает при попытке копирования из S3 в Redshift.Вот мой код:
w_mode = 'overwrite'
try:
df.write\
.format("com.databricks.spark.redshift")\
.option("url","jdbc:redshift:<removed for posting>)\
.option("dbtable", rs_target)\
.option("tempdir", "<removed for posting>")\
.option("aws_iam_role","<removed for posting>")\
.option("extracopyoptions","TRIMBLANKS")\
.option("extracopyoptions","MAXERROR 1000")\
.option("extracopyoptions","TRUNCATECOLUMNS")\
.option("tempformat","CSV GZIP")\
.mode(w_mode)\
.save()
При устранении неполадок я вижу двойные блокировки в экземпляре Redshift.Похоже, проблема заключается в двойных блокировках, но я не знаю, как этого избежать.
Итак, кто-нибудь видел или лучше все же решил эту проблему?