增加一列类型为double的NULL列有以下方法: select a,b,00F as col from t select a,b,double(NULL) as col from t select a,b,double() as col from t
回答于 2021-05-11 13:41
不是内存问题。是SYMBOL类型,有最大数量限制,不能超过2097152(2的21次方)个。SYMBOL相当于枚举类型,如果一个表中某一个字段的数据都没有重复,数据量又很大,那就失去了symbol的意义。因此这样的字段不能用SYMBOL数据类型。
回答于 2021-05-11 13:40
for(i in 0..(m.rows()-1)){ for(j in 0..(m.cols()-1)){ if(isNull(m[i,j])==true){ m[i,j]=1 break } } }
回答于 2021-05-11 12:43
这个目的是优化写入。getIntBuffer方法一般情况下会直接返回内部地址,只有在区间[start, start + len)跨越Big array的内存交界处时,才会将数据拷贝至用户传入的buffer。而setInt方法会判断传入的buffer地址是否为内部存储的地址,如果是则直接返回,否则进行内存拷贝。 具体请参阅 https://github.com/dolphindb/...
回答于 2021-05-11 12:42
/** * Assume two sessions: 09:00 ~13:30, 15:00~17:00 * dburl : dfs://tickdb * tableName: Tick */ def getMinuteKline(inCode, inDate){ t = select first(Date) as Date, firstNot(Close) as Open, min(Close) as Low, max(Close) as High, lastNot(close) as Close from loadTable("dfs://tickdb", "Tick")...
回答于 2021-05-11 12:41
table函数的第一个参数是不是data,所以要指定一下参数名: s.table(data=df,tableAliasName='jz') 报错数据类型不正确, 数据源不存在或连接格式不对,不存在对应的表data数据必须是一个字典或DataFrame类型 另外,建议文件名不要用中文,可能会引入不必要的问题。
回答于 2021-05-11 12:39
DolphinDB从1.00.2版本起,除了vector和matrix,nullFill!,bfill!,ffill!,lfill!可以接受内存表作为输入参数,支持对整表所有列替换null值。对之前的版本,可以 loop(nullFill{,0}, t.values()).table().rename!(t.colNames())
回答于 2021-05-11 12:38
def calcCRMA(date, ret){ t=table(date as date, ret as ret) t[`cr1] =log(move(ret, 21) +1) diff = t[`cr1] - log( move(ret, 21)) for(x in 2 .. 12){ t["cr" + string(x) ] = diff + log(move(ret, 21*x)) } return exec log(1 + rowMax(cr1,cr2,cr3,cr4,cr5,cr6,cr7,cr8,cr9,cr10,c...
回答于 2021-05-11 12:37