1
resposta

fazer Insert e Update com spark no Postgresql RDS AWS

Como fazer Insert e Update com spark no Postgresql RDS da AWS?

Alguém tem algum script para fazer uma carga de insert e update no Potsgresql RDS da AWS?

estou dificuldades, se alguém puder me dar um exemplo agradeço.

1 resposta

Olá Antônio, tudo bem?

Entendo que você está tendo dificuldades com o processo de inserção e atualização de dados no Postgresql RDS da AWS usando Spark. Eu pesquisei aqui alguns tutoriais e vou deixar aqui alguns comandos em scala:

Para fazer um INSERT, você pode criar um DataFrame e depois escrever nele usando o método .write.jdbc(). Aqui está um exemplo:

val df = spark.createDataFrame(Seq(
  ("first", "1"),
  ("second", "2"),
  ("third", "3")
)).toDF("your_column_name", "your_other_column_name")

df.write
  .format("jdbc")
  .option("url", jdbcUrl)
  .option("dbtable", table)
  .option("user", "username")
  .option("password", "password")
  .save()

Para fazer um UPDATE, as coisas são um pouco mais complicadas porque o Spark não suporta diretamente a operação de UPDATE. No entanto, você pode contornar isso lendo os dados do banco de dados, fazendo as alterações no DataFrame e depois sobrescrevendo os dados no banco de dados. Aqui está um exemplo de como você pode fazer isso:

val df = spark.read
  .format("jdbc")
  .option("url", jdbcUrl)
  .option("dbtable", table)
  .option("user", "username")
  .option("password", "password")
  .load()

val updatedDF = df.withColumn("your_column_name", when($"your_column_name" === "value_to_update", "new_value").otherwise($"your_column_name"))

updatedDF.write
  .format("jdbc")
  .option("url", jdbcUrl)
  .option("dbtable", table)
  .option("user", "username")
  .option("password", "password")
  .mode("overwrite")
  .save()

Lembre-se de substituir os valores de exemplo pelos seus próprios valores. Além disso, esteja ciente de que a operação de sobrescrever irá substituir todos os dados na tabela, então use com cuidado.

Espero ter ajudado e bons estudos!