mr函数的使用有问题:
mr(pt,writeData(, dbName, tableName, days), parallel=true);
这里应该改成:
mr(t,writeData{, dbName, tableName, days}, parallel=true);
是大括号,{},不是小括号,参考使用手册,函数化编程,部分应用:
我参照教程,
编写的脚本,提示报错如下: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);
mr函数的使用有问题:
mr(pt,writeData(, dbName, tableName, days), parallel=true);
这里应该改成:
mr(t,writeData{, dbName, tableName, days}, parallel=true);
是大括号,{},不是小括号,参考使用手册,函数化编程,部分应用: