开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

请问一下odps sql里concat的长度限制如何进行修改?

请问一下odps sql里concat的长度限制如何进行修改?

展开
收起
十一0204 2023-04-11 15:00:56 392 0
3 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    ODPS SQL的concat函数有长度限制,最多可以拼接两个字符串,且拼接后的字符串长度不能超过ODPS SQL的列长度限制。

    如果你需要拼接多个字符串,可以使用如下的方式:

    concat(concat(str1, str2), str3)

    如果你需要修改ODPS SQL的长度限制,可以通过以下两种方式来实现:

    在创建表时设置列长度:
    

    CREATE TABLE tb_name ( col_name string(2000) );

    这里例子中的字符串列长度为2000,可以根据需要进行修改。

    在查询时使用substr函数:
    

    SELECT substr(concat(str1, str2, str3), 1, 500) AS concatenated_str FROM your_table;

    在这个例子中,我们使用concat函数将三个字符串拼接成一个,然后使用substr函数截取前500个字符。你可以根据需要修改截取的字符数。

    2023-04-16 11:32:49
    赞同 展开评论 打赏
  • 意中人就是我呀!

    是string的长度吗 session级别设置set odps.sql.cfiles.field.maxsize=16384,默认8m不建议设置太大,会导致内存溢出。 setproject odps.sql.cfile2.field.maxsize=16384; 这个flag是用来项目级别限制每列字符串类型最大能写入的长度,单位为KB,默认8192(也就是8M),最大值262144。需要说明的是,String size在极端比较大的场景下,会有OOM问题的风险,所以是不建议设置比较大的值,目前设置到16384,是相对可控的此答案整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-04-12 09:20:02
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。

    可以通过修改ODPS的参数来调整Concat的长度限制。具体步骤如下:

    1. 在DataWorks项目中,进入ODPS SQL任务的编辑页面;
    2. 在页面底部找到“高级设置”按钮,点击进入高级设置页面;
    3. 在高级设置页面中找到“session参数”选项卡;
    4. 在session参数中选择“参数”为“odps.sql.concat.max.length”,将其值修改为需要的长度限制,单位是字节;
    5. 点击保存并执行任务。
    2023-04-11 18:12:56
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

热门讨论

热门文章

相关电子书

更多
DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载