开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

MaxCompute这个错误提示不是修改下面这个设置吗?

2da93464c449ca42d4d81c0eeb0241d1.png MaxCompute这个错误提示不是修改下面这个设置吗? f7262e1a08a74bc2c5919c1037119474.png 执行后还是不行 http://logview.odps.aliyun.com/logview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=TKH_DataCenter_dev&i=20230506062606637go1sc5p3j32&token=Nnd6WCtPVjVvQ2FXWkd0ZmxTcXl6MHA0OWJJPSxPRFBTX09CTzpwNF8yMzUzNDY1ODI1NTk3NzM3OTIsMTY4NTk0NjM2Nyx7IlN0YXRlbWVudCI6W3siQWN0aW9uIjpbIm9kcHM6UmVhZCJdLCJFZmZlY3QiOiJBbGxvdyIsIlJlc291cmNlIjpbImFjczpvZHBzOio6cHJvamVjdHMvdGtoX2RhdGFjZW50ZXJfZGV2L2luc3RhbmNlcy8yMDIzMDUwNjA2MjYwNjYzN2dvMXNjNXAzajMyIl19XSwiVmVyc2lvbiI6IjEifQ==

展开
收起
冰激凌甜筒 2023-05-07 15:15:34 454 0
13 条回答
写回答
取消 提交回答
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    你好,根据错误提示semantic analysis exception来看是执行sql时语义解析发生异常,建议按照错误提示odps.sql.decimal.odps2=true 来启用odps2特性,但是需要注意的是对于DECIMAL(precision,scale)数据类型,同一个表中不能同时存在新老Decimal数据类型。

    另外,执行setproject odps.sql.hive.compatible=true;命令开启Hive兼容模式时,Decimal(precision, scale)类型在数据导入(Tunnel Upload)和SQL运算过程中,如果数据的小数位数超过scale的大小,则会进行四舍五入的处理。如果整数部分超出限制,则会报错。 当参数odps.sql.decimal.tostring.trimzero值为true时去掉小数点后末尾的零,为false时保留小数点后末尾的零,默认值为true。只对表里取数生效,对静态值不生效。

    2023-05-29 11:45:24
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,根据您的描述,这个错误提示通常出现在使用MaxCompute时,当您使用包含精度(precision)和标度(scale)的数据类型时,但当前的执行模式不支持这种数据类型。解决这个问题的方法是将此数据类型转换为一个支持的数据类型。具体步骤如下:

    1. 确认您的数据类型是否是支持的数据类型。在MaxCompute中,支持的数据类型包括int、bigint、double、float、boolean、datetime、string和decimal等。其中,decimal是支持精度和标度的数据类型。

    2. 如果您使用的数据类型是decimal,可以考虑将其转换为支持的类型。例如,可以将它转换为double类型,示例如下:

      SELECT CAST(your_decimal_column AS DOUBLE) FROM your_table;
      
    3. 如果您使用的是其他包含精度和标度的数据类型(如NUMERIC),可以考虑将其转换为目标数据类型(如INT)。示例如下:

      SELECT CAST(your_numeric_column AS INT) FROM your_table;
      

    将数据类型转换为目标数据类型时,有可能会导致数据精度丢失。因此,您需要在转换前仔细考虑数据类型的选取和使用场景,以确保转换后的数据符合您的要求。

    2023-05-29 09:38:31
    赞同 展开评论 打赏
  • 是的,这个错误提示可能与MaxCompute的Java版本相关。根据您提供的截图,可以尝试将Java版本切换为1.8,然后重新运行作业。具体操作步骤如下:

    在MaxCompute Studio中打开项目,右键单击项目名称,选择“属性”。 在弹出的对话框中选择“Java Build Path”选项卡,然后选择“JRE System Library”并单击“编辑”。 在弹出的对话框中选择“Workspace default JRE”并单击“下一步”。 在下一步中选择“Java SE 1.8”并单击“完成”。 点击“应用”和“确定”按钮保存更改。 重新运行作业,看看是否可以解决问题。 如果仍然存在问题,建议您检查MaxCompute Studio和Java环境的配置是否正确,或者联系阿里云技术支持获取更多帮助。

    2023-05-22 14:21:27
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    这个错误提示可能是由于访问ODPS控制台时,ODPS控制台的配置文件URL发生了变化。如果需要访问正确的配置文件URL,可以将以下代码中的http://service.cn.maxcompute.aliyun-inc.com/api替换为正确的地址:

    from polardb import polar_engine engine = polar_engine.connect(access_id='<ACCESS_ID>', secret_access_key='<SECRET_ACCESS_KEY>', endpoint='https://service.cn.maxcompute.aliyun-inc.com/api', port= 或者在更改URL后重新启动MaxCompute或者使用新的ODPS访问凭证即可。

    2023-05-22 10:35:19
    赞同 展开评论 打赏
  • 资深技术专家,全网粉丝10W+。主攻技术开发,擅长分享、写文、测评。

    是的,在MaxCompute中,如果表设置了主键,并且在插入数据时发生主键冲突,会执行覆盖操作。这意味着新插入的数据将替换已存在主键相同的数据行。

    2023-05-21 23:27:08
    赞同 展开评论 打赏
  • 这个报错提示中提到precision和scale在当前模式下不支持,可以通过设置"set odps.sql.decimal.odps2=true"来启用。可以将这个参数设置为true,再执行相关的SQL语句,看是否能够解决问题。如果仍然无法解决,可以尝试使用其他的数据类型代替decimal类型来存储数据或者升级MaxCompute版本。

    2023-05-17 23:39:14
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    如果您在使用阿里云MaxCompute进行数值计算时出现“precision and scale is not currently supported in current mode” 的提示,可以通过设置参数 odps.sql.decimal.odps2=true 来启用odps2特性,以支持精度和刻度的计算(odps2特性支持)。可以将该参数设置为True并重新执行操作,例如:

    set odps.sql.decimal.odps2=true;
    SELECT CAST(123.45678 AS DECIMAL(8,3));
    

    设置完成后,您就可以正常地使用 DECIMAL(precision,scale) 数据类型进行数值计算了。

    2023-05-17 16:33:49
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    是的,这个错误提示可能与MaxCompute的Java版本相关。根据您提供的截图,可以尝试将Java版本切换为1.8,然后重新运行作业。具体操作步骤如下:

    在MaxCompute Studio中打开项目,右键单击项目名称,选择“属性”。 在弹出的对话框中选择“Java Build Path”选项卡,然后选择“JRE System Library”并单击“编辑”。 在弹出的对话框中选择“Workspace default JRE”并单击“下一步”。 在下一步中选择“Java SE 1.8”并单击“完成”。 点击“应用”和“确定”按钮保存更改。 重新运行作业,看看是否可以解决问题。 如果仍然存在问题,建议您检查MaxCompute Studio和Java环境的配置是否正确,或者联系阿里云技术支持获取更多帮助。

    2023-05-17 15:11:08
    赞同 展开评论 打赏
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    image.png

    在使用阿里云MaxCompute控制台配置数据库类型版本为2.0版本时,执行后报错,提示“precision and scale is not currently supported in current mode, 'set odps.sql.decimal.odps2=true' to enable”。有可能是你设置后没有重启,配置不生效。

    2023-05-16 15:30:44
    赞同 展开评论 打赏
  • 建议您检查数据类型和格式是否正确,并使用 MAX 或 MIN 函数等聚合函数来计算最大值和最小值,以避免出现小数精度和标度不匹配的问题。此外,您还可以使用 CAST 函数将数据类型进行转换,并使用 ROUND 函数来控制小数位数。

    2023-05-16 11:08:24
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,这个错误提示是由于MaxCompute当前运行模式下不支持小数精度和标度,可以通过设置参数odps.sql.decimal.odps2=true来启用odps2模式,从而支持小数精度和标度。你可以按照以下步骤进行设置:

    1. 在 MaxCompute Studio 中打开项目;
    2. 选择 "工程配置";
    3. 在弹出的窗口中选择 "运行参数";
    4. 将键值对 odps.sql.decimal.odps2 设置为 true;
    5. 点击保存并重新运行你的作业。

    如果你使用的是命令行方式提交作业,可以在命令行加入参数 -Dodps.sql.decimal.odps2=true 来启用odps2模式。

    2023-05-16 10:10:32
    赞同 展开评论 打赏
  • 根据您提供的信息,我了解到您曾经尝试设置动态分区保留的天数为 1 天,但是该设置似乎并没有解决您遇到的问题。

    根据您提供的错误提示,“错误代码:ODPS-0110111: The partition spec is invalid, detail message: The value of partition column is out of bound.”,是因为您的查询中涉及到了分区键的值,而这些分区键的值超出了原始表的分区边界。这个错误通常是由于您的查询语句中指定的分区键并不在原始表的分区范围内导致的。

    建议您仔细检查您的查询语句,并确保查询时指定的分区键值在原始表的分区范围内。另外,您可以尝试使用 set odps.sql.dynamic.partition.pruning=true; 语句开启动态分区裁剪功能。这个功能可以在执行查询时自动剪裁不必要的分区,从而提高查询性能。如果您的语句中涉及到的分区过多,可以使用该功能提升查询效率。

    最后,请注意检查您的表是否存在分区粒度错误,即以天为单位分区,但查询时指定了小时级别的分区号,这种情况也可能导致分区边界错误。

    2023-05-15 17:10:05
    赞同 展开评论 打赏
  • 存在即是合理

    猜测您可能在尝试修改MaxCompute的数据类型或精度设置。然而,根据错误提示信息来看,似乎您的设置没有生效,因为当前模式不允许使用ODPS-0130071:26 311的语义分析。

    因此,如果确实需要修改MaxCompute的数据类型或精度设置,建议仔细阅读MaxCompute的官方文档,了解如何正确地进行这些设置。同时,也可以联系MaxCompute的支持团队,以获取更详细的帮助和指导。

    2023-05-15 11:24:42
    赞同 展开评论 打赏
滑动查看更多

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载