教程,DolphinDB入门:量化金融范例,生成模拟数据的问题

我参照教程,

3.3 生成模拟数据

编写的脚本,提示报错如下:writeData: update t set date = i => The object to update in sql update statement must be a table.

脚本如下:

def writeData(mutable t , dbName, tableName, days){ // 加载表 pt = loadTable(dbName,tableName); for(i in days){ // 更新表 update t set date = i; // 加载模拟数据到源表 pt.append!(t); } } // 主函数,使用mapreduce批量加载 def main(dbName, tableName, days){ // 获取源表数据 pt = loadTable(dbName, tableName); // 使用mapreduce批量加载 mr(pt,writeData(, dbName, tableName, days), parallel=true); } /** 使用 **/ dbName = "dfs://level2"; tableName = `quotes; days = (2020.06.01..2020.06.30)[weekday(2020.06.01..2020.06.30) between 1:5 ]; main(dbName, tableName, days);


报错报的update不是表对象,然后修改用loadTableBySQL,提示报错信息是一样的

t = loadTableBySQL(<select * from pt where date=2020.06.01>);

// 使用mapreduce批量加载

mr(t,writeData(, dbName, tableName, days), parallel=true);


请先 登录 后评论

1 个回答

dongmange

mr函数的使用有问题:

mr(pt,writeData(, dbName, tableName, days), parallel=true); 

这里应该改成:

mr(t,writeData{, dbName, tableName, days}, parallel=true);

是大括号,{},不是小括号,参考使用手册,函数化编程,部分应用:

部分应用 — DolphinDB 2.0 文档

请先 登录 后评论
  • 1 关注
  • 0 收藏,466 浏览
  • Feng Gao 提出于 2021-09-23 17:41