【发布时间】:2018-12-24 00:37:22
【问题描述】:
我有两张桌子。表 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
我打算在join之后使用countvectorizer,它不能处理空值。所以我想用字符串类型的空数组替换空值。
这是与PySpark replace Null with Array 中讨论的类似问题
但我有来自表 2 的 10 多个变量,每个变量都有不同的维度。
有什么我能做的建议吗?加入前可以做countvectorizer吗?
【问题讨论】:
-
从技术上讲,如果在左外连接之后所有结果行都为空,那么就没有什么可以加入的了。你确定它工作正常吗?如果只有部分结果为空,那么您可以通过将 left_outer 连接更改为内部连接来消除它们。
-
只有一些行是空的,我需要保留这些行。