首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Read_Stream联合的数据库DLT语法

用于Read_Stream联合的数据库DLT语法
EN

Stack Overflow用户
提问于 2022-10-08 12:31:44
回答 1查看 81关注 0票数 0

对于DLT来说,很难用python语法通过dlt.read_stream操作符作为另外两个活动表的联合(unionByName)返回数据。

我的管道如下..。

作品: Table1:

代码语言:javascript
复制
@dlt.table()
def table_1()
   return spark.sql (''' select mergeKey, date_seq, colN, case/when.., cast.. from live.raw_table_1 ''')

作品: Table2:

代码语言:javascript
复制
@dlt.table()
def table_2()
   return spark.sql (''' select mergeKey, date_seq, colN, case/when.., cast.. from live.raw_table_2 ''')

问题: View_Union:

代码语言:javascript
复制
    @dlt.view()
    def pre_merge_union_v
    --> question: what's the syntax to [return dlt.read_stream("df_unioned").as.table1.unionByName(table2)

创建银表:

代码语言:javascript
复制
dlt.create_streaming_live_table("silver_table")

最后,将更改应用于Silver:

代码语言:javascript
复制
dlt.apply_changes(
   target = "silver_table"),
   source = "pre_merge_union_v"
   keys = ["mergeKey"],
   sequence_by = "date_seq"

试过:

我尝试将我的View_Union视图创建为:

代码语言:javascript
复制
@dlt.view()
def pre_merge_union_v:
   df_table1 = spark.table("live.raw_table1")
   df_table2 = spark.table("live.raw_table2")
   df_unioned = df_table1.unionByName(df_table2)
     return df_unioned

然而,当管道运行时,它会抱怨pre_merge_union_v必须是一个READ_STREAM视图(因为它正在合并到一个流直播表中,我想)

使用return dlt.read_stream(df_unioned)还会生成一个错误。

EN

回答 1

Stack Overflow用户

发布于 2022-10-08 15:02:33

我想我已经回答了我自己的问题。希望能帮上忙。

代码语言:javascript
复制
return dlt.read_stream("raw_table1").unionByName(dlt.read_stream("raw_table2"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73997002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档