Snowflake如何处理NULL值?

时间:2020-01-07 21:50:25

标签: python snowflake-cloud-data-platform

例如,在我的数据框中,我有一列NULL值,我打算以后再编辑,比如说字母等级。现在是一些示例:

import csv
import pandas as pd
import numpy as np
df = pd.read_csv('MOCK_DATA.csv')
df.head()

   id first_name last_name                     email  null field  blank_field
0   1      Paule    Tohill   ptohill0@macromedia.com       False         NaN
1   2       Rebe   Slyford  rslyford1@washington.edu        True         NaN
2   3   Angelita    Antoni        aantoni2@google.pl       False         NaN
3   4      Giffy      Dehm       gdehm3@berkeley.edu       False         NaN
4   5        Rob    Beadle       rbeadle4@taobao.com       False         NaN

我想导入数据以以后更改blank_field列的类型。我了解如何在Python连接器中使用SQLAlchemy。

df.to_sql(con=con, name='Grades', if_exists='replace', flavor='mysql')

我是否需要在此处指定任何内容来更改blank_field-列?雪花将如何处理NaN值?

1 个答案:

答案 0 :(得分:0)

列长度将为插入的最长值的最大值,如果列仅包含VARCHAR(16777216),则为NULL

然后,您可以在创建表后增加varchar列的大小,但不能减小它。 (只有在非常有限的情况下,您才不适合使用VARCHAR(MAX)。您只为实际存储的内容付费,而性能则取决于数据的最大长度,而不是允许的限制)。

https://docs.snowflake.net/manuals/sql-reference/sql/alter-table-column.html

create or replace temp table x as
select $1 as c1,$2 as c2
from values
('NaN',NULL)
;

desc table x;

create or replace temp table y as
select $1 as c1,$2 as c2
from values
('NaN',NULL)
,('A','B')
;

desc table y;

create or replace temp table z as
select $1 as c1,$2 as c2
from values
('A','B')
,('NaN',NULL)
;

desc table z;