如何从pyspark中的左联接表替换空值

时间:2018-07-16 12:49:11

标签: replace null pyspark

我有两个桌子。表1具有500万行,表2具有300万行。当我执行table1.join(table2,...,'left_outer')时,表2中的所有列在新表中都为空值。看起来如下(表2中的var3和4是长度可变的字符串数组):

t1.id var1 var2     table2.id        table2.var3  table2.var4
1  1.3  4               1          ['a','b','d']  ['x','y','z']
2  3.0   5              2          ['a','c','m','n'] ['x','z']
3  2.3   5

我计划在连接后使用countvectorizer,它不能处理空值。所以我想将空值替换为字符串类型的空数组。

PySpark replace Null with Array

中讨论的问题类似

但是我在表2中有10多个变量,每个变量都有不同的维度。

我能做什么建议?我可以在加入之前做countvectorizer吗?

1 个答案:

答案 0 :(得分:0)

数据框具有.na.fill()属性。

replace_cols = {col:'' for col in df.columns}
df.na.fill(replace_cols)