Databricks डेल्टा तालिका में मर्ज कथन का उपयोग आर

0

सवाल

मैं हाल ही में पर काम शुरू कर दिया Databricks और मैं कोशिश कर रहा है खोजने के लिए एक तरह से प्रदर्शन करने के लिए एक विलय के बयान पर एक डेल्टा मेज, का उपयोग हालांकि, एक आर एपीआई (अधिमानतः sparklyr). परम उद्देश्य है करने के लिए किसी भी तरह थोपने के लिए 'डुप्लीकेट' बाधा के रूप में वर्णित है यहाँ. ऊपर उल्लिखित दस्तावेज का वर्णन अजगर कार्यप्रवाह :

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

हालांकि, मैं सोच रहा था कि क्या वहाँ है एक सीधे आगे तरीके से इस लक्ष्य को हासिल करने के माध्यम से आर किसी भी सहायता/विचारों पर बात बहुत सराहना की जाएगी के बाद से मैं एक नया उपयोगकर्ता (के रूप में ऊपर उल्लेख किया). अग्रिम में धन्यवाद!

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

वहाँ कोई आधिकारिक आर एपीआई के लिए डेल्टा झील है, लेकिन आप कर सकते हैं बस का उपयोग करें एसक्यूएल के विलय में आदेश के लिए है कि (मैं अक्सर करते हैं, यह स्काला में/अजगर, बस, क्योंकि यह आसान करने के लिए पढ़ने के लिए, कम से कम मेरे लिए). आप की जरूरत है रजिस्टर करने के लिए एक अस्थायी दृश्य के साथ डेटा है कि आप चाहते हैं में डाल करने के लिए गंतव्य तालिका, और बस चलाने के लिए 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

है कि दुख की बात है, रेफरी के लिए कोई आधिकारिक समर्थन के लिए आर डेल्टा झील एपीआई समर्थन करते हैं । किसी भी तरह, बहुत बहुत धन्यवाद के लिए समाधान और प्रदान की प्रतिक्रिया ; किसी भी मामले में मैं कर सकते हैं से बचने के TempView? मुझे नहीं लगता है, सही?
takmers

आप कर सकते हैं सैद्धांतिक रूप से लिखने के नीचे करने के लिए डिस्क का उपयोग करें और यह है, लेकिन यह भी बदतर हो जाएगा अस्थायी देखें
Alex Ott

Btw, यह की तरह लग रहा है कुछ आवरण के लिए अनुसंधान जारी है, हालांकि आधिकारिक नहीं
Alex Ott
1

उपलब्ध कराने के इस जवाब के बाद आप टिप्पणी की है कि वहाँ कोई आर डेल्टा झील एपीआई समर्थन करते हैं । वहाँ अब एक नई आर पैकेज प्रदान करता है कि एक आर एपीआई के लिए डेल्टा झील: dlt. वाक्य रचना है, बहुत ही इसी तरह की है कि पायथन एपीआई के लिए डेल्टा झील है ।

के मामले में अपने उदाहरण:

# 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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में