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

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

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

展开
收起
真的很搞笑 2023-11-12 07:48:35 70 0
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架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

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

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