0

나는 스파크를 사용하여 Terradata 테이블에서 데이터를 읽고 있는데 Upsert 오라클 테이블에 있습니다. 데이터를 삽입 할 수 있지만 UPSERT를 수행 할 수 있습니까?Spark -Reading Terradata 테이블과 오라클 테이블에 업 그레 이드

이것은 Oracle에 데이터를 삽입하는 방법입니다.

dataframe.write.mode (SaveMode.Append) .jdbc (URL, 표 6, 소품)

+0

사람들이 누구나 제발 제안하십시오 –

답변

0

나는 하루에 한 번 실행 스파크 작업을 예정 한 테이블 사용 dataframe.write.mode을 덮어 쓰기 (SaveMode. 덮어 쓰기) .jdbc (URL, 테이블, 소품). 따라서 spark 작업이 실행될 때마다 Teradata 테이블에서 모든 데이터를 가져오고 Oracle의 테이블을 덮어 씁니다.

0

스파크 2.2 스파크에는 upsert이 없습니다. writeStream를 사용하여 foreachpartition

  • 당신은 아주 잘 병렬 방식으로 그것을 할 수 있고, 데이터에

    1. 으로 반복하고 foreach 문을 사용하여 알아낼 :

      그래서, 방법이 될 수 있습니다 달성 메시지 세트를 삽입/업데이트하려면 ForeachWriter의 open(), close() 및 process() 메서드를 재정의하십시오.

    희망이 있습니다.

  • +0

    답장을 보내 주셔서 감사합니다.하지만 일반 DB이므로 스트로크 캔트를 사용하면 스파크 작업이됩니다. 솔루션의 작은 샘플 코드를 보여줄 수 있다면 매우 유용 할 것입니다. –

    관련 문제