ODPS中令人困惑的"\N"

    在使用ODPS上的表时,很可能这个表中的数据是采用某些同步工具从其他的数据源中同步而来的,而当你想过滤某个字段field_name中值为null的数据时,往往会在where条件中按照 where field_name is not null来过滤field_name中的null值。

    但是当你按照如上方式过滤后,重新审视过滤后的数据你会发现其实情况并不像你想的一样:过滤后的filed_name字段中虽说不包括null值,但是会出现一些奇怪的\N,这时该怎么办呢?

    解决方案:一些同步工具在向ODPS中同步数据源(例如MySQL数据库)中的数据时,会将一些null字段给赋值为"\N",而这些字段在ODPS的表中很容易被认为是null而忽略,这将影响最终的数据质量;

    例如:若简单的在where条件中按照 where field_name is not null来过滤field_name中的null字段,可能最终的field_name字段中会包括"\N"的情况。

    因此,若希望在ODPS表中过滤某个字段中的null数据,可以按照以下方式:

    where (field_name is not null or field_name <>'\\N')

    过滤后field_name字段中就不会存在null或者\N的数据了!

你可能感兴趣的:(ODPS中令人困惑的"\N")