在 DolphinDB 中执行左连接 (lj) 时内存溢出

问题描述 投票:0回答:1
for (num in getPeriod()){
  // iterate through columns
  for(col in getCol()){
    // factor calculation
    col_data = sql(select=[sqlCol("symbol"),sqlCol("trade_date"),sqlColAlias(makeUnifiedCall(funcByName("ema"),[sqlCol(col),num]),col+'_'+'ema_'+num)],from=data_table,groupBy=sqlCol(`symbol),groupFlag=0).eval()
    // keep two decimal places
    col_date[col+'_'+'ema_'+num]= col_data[col+'_'+'ema_'+num].round(2)
    result_base = select * from lj(result_base,col_data,`symbol`trade_date)
  }
}

如提供的脚本所示,我使用

lj
操作将“col_data”表连接到“result_base”表。但结果表内数据量激增,导致内存溢出错误。有谁知道如何解决这个问题吗?

left-join dolphindb
1个回答
0
投票

检查特定key对应的右表是否匹配记录过多。

lj
可能会返回比左表更多的行,因为它返回右表中的所有匹配记录。要返回与左表相同的行数,请考虑使用
lsj
操作。

© www.soinside.com 2019 - 2024. All rights reserved.