DataWorks中oss写入报java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误通常是由于DataWorks中OSS写入节点的参数类型不正确导致的。在DataWorks中,OSS写入节点的输出参数类型应该为List类型,而不是String类型。如果您将输出参数类型设置为String类型,就会出现该错误。
要解决这个问题,您可以按照以下方法进行操作:
打开OSS写入节点的配置窗口,在“输出参数”中设置参数类型为List类型。
在OSS写入节点的SQL脚本中,将输出参数的赋值语句修改为List类型。例如,您可以使用以下语句将数据写入OSS:
sas
Copy
output = new ArrayList();
output.add("data1");
output.add("data2");
output.add("data3");
保存并运行OSS写入节点,确保节点能够正常执行。
通过以上操作,您可以解决java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List的错误。需要注意的是,如果您在DataWorks中使用OSS写入节点时遇到其他错误,可以根据错误提示信息进行排查和
离线同步任务(其他数据库==》oss writer)报java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List,有可能是oss配置了header参数但是未配置相应的表头内容。请填写相应的表头内容。,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。