首先这个错误是server端返回的错误,意思是插入DFS表时,参数也只能是一个table类型的对象;
其次使用API和server交互时,需要考虑到类型的映射关系,server的table类型对应的是Java API中的BasicTable类;
public BasicTable(final List<String> colNames, final List<Vector> cols);
使用上述构造方法,构建一个BasicTable作为参数即可。
实际上这里调用conn.run(script,args),是把脚本通过序列化的方式传输给server执行,因此如果使用这种方式执行数据插入,使用的是server内置函数tableInsert,和API层无关,我们需要处理的是根据server函数的使用语法,构建正确的参数args即可,那么不同的地方在于各个编程语言上数据类型的映射关系不同,具体的对应关系可以查阅各个API的readme。