Snowflake如何处理空值?
问题描述
例如,在我的数据框中,我有一列空值,我计划稍后对其进行编辑,比如字母等级。以下是目前的一些示例: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
列的类型。我了解如何将SQLAlChemy与Python连接器一起使用。
df.to_sql(con=con, name='Grades', if_exists='replace', flavor='mysql')
我是否需要在此指定任何内容才能更改blank_field
-列?Snowflake将如何处理NaN值?
解决方案
列长将是插入的最长值的最大值,如果该列仅包含NULL
,则VARCHAR(16777216)
。
然后,您可以在创建表之后增加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;
相关文章