1

У меня есть требование сделать загрузку/удаление определенных записей из postgres db для моего приложения искры. Для загрузки я использую искровой dataframe в приведенном ниже форматеУдалить функциональность с помощью искрового sql dataframe

sqlContext.read.format("jdbc").options(Map("url" -> "postgres url", 
     "user" -> "user" , 
     "password" -> "xxxxxx" , 
     "table" -> "(select * from employee where emp_id > 1000) as filtered_emp")).load() 

Чтобы удалить данные, я пишу прямой SQL вместо использования dataframes

delete from employee where emp_id > 1000 

Вопрос заключается в том, есть ли искра способ удаление записей в базе данных, что-то похожее на ниже? Или единственный способ использовать прямой sql?

sqlContext.read.format("jdbc").options(Map("url" -> "postgres url", 
     "user" -> "user" , 
     "password" -> "xxxxxx" , 
     "table" -> "(delete from employee where emp_id > 1000) as filtered_emp")).load() 
+1

Просто используйте стандартный клиент JDBC? – zero323

ответ

1

Если вы хотите изменить (удалить записи) фактический источник данных, т.е. таблицы в Postgres, то искра не была бы отличным способом. Вы можете напрямую использовать клиент jdbc для достижения того же.

Если вы хотите сделать это в любом случае (в распространенном виде на основе некоторых подсказок, которые вы вычисляете как часть данных); вы можете иметь один и тот же код клиента jdbc, написанный в соответствии с фреймворком данных, который имеет информацию о логике/триггере для удаления записей и которые мы можем выполнить на нескольких рабочих параллельно.

Смежные вопросы