大数据计算MaxCompute外部表映射了oss中的csv文件,这是什么原因么?

大数据计算MaxCompute外部表映射了oss中的csv文件,csv文件中的数据有的是\N,然后映射到maxcomputer中\N数据变成了N,这是什么原因么?

展开
收起
真的很搞笑 2023-11-12 07:48:35 142 分享 版权
2 条回答
写回答
取消 提交回答
  • 在CSV文件中,"\N"通常被用作空字符串的表示方式。然而,在MaxCompute中,"\N"会被解析为一个特殊的NULL值。

    如果你在MaxCompute中看到"\N"被解析为"N",那可能是因为你在创建外部表的时候,没有正确地配置NULL值的表示方式。

    在创建外部表的时候,你需要在模式定义中指定NULL值的表示方式。例如,如果你想要让NULL值在MaxCompute中表示为"\N",你可以这样定义模式:

    CREATE EXTERNAL TABLE my_table (
      id INT,
      name STRING,
      age INT
    )
    PARTITION BY (dt STRING)
    FORMAT 'CSV'
    TBLPROPERTIES ('skip.header.line.count'='1');
    

    在这个例子中,TBLPROPERTIES ('skip.header.line.count'='1')就是一个属性,它告诉MaxCompute在读取CSV文件时,跳过第一行(通常是列名)。

    然后,你需要在模式定义中添加NULL_VALUE属性,以指定NULL值的表示方式。例如,如果你想要让NULL值在MaxCompute中表示为"\N",你可以这样定义模式:

    CREATE EXTERNAL TABLE my_table (
      id INT,
      name STRING,
      age INT
    )
    PARTITION BY (dt STRING)
    FORMAT 'CSV'
    TBLPROPERTIES (
      'skip.header.line.count'='1',
      'NULL_VALUE'='\\N'
    );
    

    在这个例子中,'NULL_VALUE'='\\N'就是一个属性,它告诉MaxCompute在读取CSV文件时,将"\N"解析为NULL值。

    2023-11-12 09:36:13
    赞同 展开评论

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

还有其他疑问?
咨询AI助理