Pyspark удалить строку из PostgreSQL - PullRequest
2 голосов
/ 27 января 2020

Как PySpark может удалять строки в PostgreSQL, выполняя запрос, например DELETE FROM my_table WHERE day = 3?

Spark SQL предоставляет API только для вставки / переопределения записей. Таким образом, использование библиотеки типа psycopg2 может сделать эту работу, но ее необходимо явно скомпилировать на удаленной машине, что для меня невозможно. Любые другие предложения?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Единственное решение, которое работает до сих пор, - это установить psycopg2 для запуска главного узла и вызова запросов, как обычный python. Добавление этой библиотеки в виде py-файлов не помогло мне

0 голосов
/ 27 января 2020

Данных в Apache Искры неизменны. Вы можете отфильтровать ненужные строки.

См. Документацию .

Простой пример:

df = spark.jdbc("conn-url", "mytable")
df.createOrReplaceTempView("mytable")
df2 = spark.sql("SELECT * FROM mytable WHERE day != 3")
df2.collect()
...