我有一个包含键和值的文本文件,其中一些值丢失了,
key1 12 13 na
key1 na 11 11
key1 12 13 11
key2 11 12 10
key3 10 11 10
key3 na na na
我想填充缺失的值,所以我做了(数据是我的 rdd)
def fill_na(x):
ldf = Df(list(x))
df_with_na = ldf #df_with_na.toPandas()
df_with_mode = df_with_na.fillna(df_with_na.mode().iloc[0])
return_list = df_with_mode.values.tolist()
return return_list
data1 = data.mapValues(fill_na).flatMapValues(f)
现在 data1 看起来像:
data1.collect()
(key1 ,[12 13 11])
(key1 ,[12 11 11])
(key1 ,[12 13 11])
(key2 ,[11 12 10])
(key3 ,[10 11 10])
(key3 ,[10 11 10])
现在我希望将上面的 data1 写入我尝试过的数据框/表中
data1.toDF().toPandas()
但我收到一个错误
TypeError: StringType can not accept object in type <type 'float'>
1)如何写入数据框?2)如何将键和列表转换为如下所示的单个元组?
(key1 ,11,12,13)
这样我就可以直接写入数据框了吗?
提前致谢 :)