Databricks 델타 테이블 병합을 사용하여 문 R

0

질문

나는 최근에 작업을 시작했 Databricks 와 나는 방법을 찾기 위해 노력하고 수행하 merge 문 델타 테이블만 사용하는 api(바람직 sparklyr). 의 궁극적인 목적은 어떻게 든 부과하는'중복'제약 조건 설명된 대로 여기에. 상기 설명서에서 설명하는 파이썬 워크플로우:

deltaTable.alias("logs").merge(
    newDedupedLogs.alias("newDedupedLogs"),
    "logs.uniqueId = newDedupedLogs.uniqueId") \
  .whenNotMatchedInsertAll() \
  .execute()

그러나 궁금 있는지 여부를 똑바른 방법으로 이를 달성하기 위해 통 R. 어떤 지원/아이디어에서 문제입니다 때문에 나는 새로운 사용자는(위에서 언급한 바와 같). 사전에 감사합니다!

databricks delta-lake duplicates r
2021-11-23 14:03:15
2
1

공식적인 관계가 없 R API 를 위한 델타 호수,하지만 당신이 사용할 수 있습니다 SQL 의 병합으로 명령한 것(난 종종 그것은 스칼라에서/Python 기 때문에,그것은 쉽게 읽을 수 있습니다.서 나). 당신이 등록하는 데 필요한 temp 보기 원하는 데이터를 넣으로 목적지 테이블,그리고 그냥 실행 sql이것처럼(문자열이 분할에 대한 가독성):

library(SparkR)
updates_df <- ...get updates...
createOrReplaceTempView(updates, "updates")
result <- sql(
  "MERGE INTO <your_table> AS target USING updates 
   ON target.id = updates.id WHEN NOT MATCHED THEN INSERT *")
2021-11-23 16:56:28

는 슬픔,ref 를 공식적인 지원을 위한 R 델타 호 API 를 지원합니다. 어쨌든,많은 감사 솔루션 피드백을 제공된다;어떤 경우 피할 수 있습니다 TempView? 나는 가정하지 않은가?
takmers

할 수 있는 이론적으로 작성을 디스크에 그것을 사용하지만,그것은 것보다 더 temp 보기
Alex Ott

Btw,그것은 다음과 같은 일부에 대한 래퍼 R 출시하지 않지만,공식적인
Alex Ott
1

제공하는 이 대답은 때문에 당신은 댓글이 없다는 것 R 델타 호 API 를 지원합니다. 이제 새로운 R 패키지를 제공하는 R API 를 위한 델타 호: dlt. 구문은 그것과 매우 유사하는 파이썬 API 를 위한 델타 호수도 있습니다.

의 경우에 당신의 예:

# Install and laod the `dlt` package
remotes::install_gitlab("zero323/dlt")
library(dlt)
...

# Use the Delta Lake R API from the dlt package
deltaTable <- dlt_for_path("<path to table>")

deltaTable %>%
  dlt_alias("logs") %>%
  dlt_merge(alias(newDedupedLogs, "newDedupedLogs"), expr("newDedupedLogs.uniqueId = logs.uniqueId")) %>%
  dlt_when_not_matched_insert_all() %>%
  dlt_execute()
2021-11-27 18:23:06

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................