我使用Spark执行数据转换并将其加载到Redshift中。 Redshift不支持NaN值,因此我需要将所有NaN的出现替换为NULL。
我尝试了以下代码:
我尝试了以下代码:
some_table = sql('SELECT * FROM some_table')
some_table = some_table.na.fill(None)
但我遇到了以下错误:
ValueError: 值应为浮点数、整数、长整数、字符串、布尔类型或字典
因此,看起来像是na.fill()
不支持None。 我需要明确使用NULL
进行替换,而不是其他值,如0
。
pd.DataFrame( df ).replace( { float( 'nan' ): None } )
,请参见https://github.com/pandas-dev/pandas/issues/26050。 - Andrew