mr函数做分布式计算的时候如何返回两个变量?

如题,我想对一个分区表做分布式计算,实现并行计算,目前我想到的脚本大概是这样的,但是会报错:

dbName = "dfs://SH_TSDB_snapshot_MultiColumn"
tbName = "snapshot"
pt = loadTable(dbName, tbName)
replayDate = 2021.12.01
ds = sqlDS(<select DateTime,SecurityID from pt where date(DateTime)=replayDate, time(DateTime)>=09:30:00.000>)
def disctcode(t){
	r1 = select distinct(DateTime)  as SecurityID from t
	r2 = select distinct(SecurityID)  as SecurityID from t
	return r1,r2
}

a1,a2=mr(ds, disctcode, ,unionAll{,false})


错误提示如下:

attachments-2023-03-26dE8fvQ6409c66393a93.png

请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

可以尝试一下这种方法:

dbName = "dfs://SH_TSDB_snapshot_MultiColumn"
tbName = "snapshot"
pt = loadTable(dbName, tbName)
replayDate = 2021.12.01
ds = sqlDS(<select DateTime,SecurityID from pt where date(DateTime)=replayDate, time(DateTime)>=09:30:00.000>)
def disctcode(t){
	r1 = select distinct(DateTime)  as SecurityID from t
	r2 = select distinct(SecurityID)  as SecurityID from t
	return r1,r2
}

a1,a2=mr(ds, disctcode, ,)


b1 = unionAll(a1,0,0)
b2 = unionAll(a2,0,0)
请先 登录 后评论