Databricks เดลต้าโต๊ะผนวกรวมคำให้การใช้สเปนเซอร์รี้ดครับ R

0

คำถาม

ฉันเพิ่งเริ่มทำงานกับ Databricks และฉันกำลังพยายามหาทางที่จะแสดงเป็นผนวกรวมคำให้การอยู่บนเดลต้าโต๊ะแม้ว่าการใช้สเปนเซอร์รี้ดครับ R รูปแบบ api(โดยเฉพาะ sparklyr). สุดยอดประสงค์คือต้องรบกวน'ถัดไป'constraint ย่างที่เรียก มาที่นี่. ที่ aforementioned เอกสารอธิบายว่าที่เป็นภาษาไพธอน workflow:

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

ไม่มีทางสเปนเซอร์รี้ดครับ R รูปแบบ api สำหรับเดลต้าริมทะเลสาปแต่คุณสามารถใช้ภาษา sql ขอ ผนวกรวมเข้าไปใน คำสั่งสำหรับมัน(ฉันมักจะทำมันอยู่ใน Language/ปลั๊กอินสำหรับไพธอน,เพียงเพราะมันง่ายที่จะอ่านหนังสืออย่างน้อยก็สำหรับฉัน). คุณต้องลงทะเบียนเป็นอุณหภูมิองมุมมองกับข้อมูลที่คุณต้องการที่จะใส่เข้าไปในปลายทางโต๊ะและแค่วิ่ง sqlเหมือนนี้(ข้อความเป็นแยกออกสำหรับ readability):

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 ต้องไม่เป็นทางการสนับสนุนสำหรับอาร์เดลต้าทะเลสาบรูปแบบ api สนับสนุน ยังไงก็แล้ว,ขอบคุณมากสำหรับทางและการแจ้งเตือนการเริ่มทำงานให้;มีคดีฉันสามารถหลีกเลี่ยง TempView? ฉันคิดว่าไม่ถูกต้องไหม
takmers

คุณสามารถตามทฤษฎีแล้วเขียนลงดิสก์แล้วใช้มัน,แต่มันจะแย่ยิ่งกว่าอุณหภูมิองมุมมอง
Alex Ott

Btw,มันดูเหมือนบางอย่า wrapper สำหรับสเปนเซอร์รี้ดครับ R ถูกปล่อยถึงไม่เป็นทางการ
Alex Ott
1

ในกรณีที่นี่ตอบคำตั้งแต่คุณยันว่าไม่มีอาร์เดลต้าทะเลสาบรูปแบบ 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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่