【问题标题】:Can I create the equivalent of a SQL temporary table in databricks?我可以在数据块中创建等效的 SQL 临时表吗?
【发布时间】:2021-08-30 18:48:33
【问题描述】:

我有一个 databricks 笔记本,我目前在其中创建了一个基于几个 delta 表的视图,然后根据这个视图更新一些相同的 delta 表。但是我得到了不正确的结果,因为随着增量表的变化,视图中的数据也会发生变化。我实际上需要的是在笔记本开始运行时对数据进行快照,然后我可以在整个笔记本中使用它,类似于 SQL 临时表。目前我正在通过将数据持久化到表中并将表放在笔记本末尾来解决这个问题,但我想知道是否有更好的解决方案?

【问题讨论】:

    标签: databricks


    【解决方案1】:

    Pinned view of a continuously updating Delta table across multiple downstream jobs 部分包含以下示例代码:

    version = spark.sql("SELECT max(version) FROM (DESCRIBE HISTORY my_table)")\
      .collect()
    
    # Will use the latest version of the table for all operations below
    
    data = spark.table("my_table@v%s" % version[0][0]
    
    data.where("event_type = e1").write.jdbc("table1")
    data.where("event_type = e2").write.jdbc("table2")
    ...
    data.where("event_type = e10").write.jdbc("table10")
    
    

    【讨论】:

    • 谢谢你 - 现在看起来很明显!
    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 2023-02-21
    • 1970-01-01
    • 2011-06-28
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多