AWS Glue, как удалять / обновлять поля в целевом источнике (scala) - PullRequest
0 голосов
/ 26 сентября 2018

Я новичок в Scala и AWS Glue.

У меня есть файл CSV, загруженный на S3, и у меня есть другая таблица MySQL.Я пытаюсь удалить файл CSV из таблицы MySQL.Я использую Scala.Я попытался создать два Temp View и использовать sparksql, чтобы получить новый фрейм данных, а затем перенести фрейм данных в новый динамический фрейм.

Вопрос в том, что я обнаружил, что «Удалить» недопустимо, и после того, как я попытаюсь получить данные (которые находятся внутри нового динамического фрейма), мне сказали «Дублирующая запись« 12796 »для ключа« ПЕРВИЧНЫЙ »'

val dataSourceRDSDf = dataSourceRDS.toDF()
dataSourceRDSDf.createOrReplaceTempView("CompanyTable")

val deletedSqlDf = sp.sql("DELETE FROM CompanyTable WHERE company_id = '14'")
deletedSqlDf.printSchema()
printf("oooooooooooooooooooooooooooooooooooooooooooooooooooooooo")
printf("You typed: %s", deletedSqlDf.show())
val deletedSqlDyf = DynamicFrame(deletedSqlDf, glueContext).withName("deleted_company_sql_dyf")
val dataSink = glueContext.getCatalogSink(database = catalogDatabase, tableName = targetMetadataTable, redshiftTmpDir = "",
  transformationContext = "dataSink").writeDynamicFrame(deletedSqlDyf)
...