我有一個Dataframe A包含一列數組字符串。如何過濾包含任何其他數據幀/集的任何值的數組列的Spark數據幀
...
|-- browse: array (nullable = true)
| |-- element: string (containsNull = true)
...
例如三個採樣的行會是
+---------+--------+---------+
| column 1| browse| column n|
+---------+--------+---------+
| foo1| [X,Y,Z]| bar1|
| foo2| [K,L]| bar2|
| foo3| [M]| bar3|
和包含字符串
|-- browsenodeid: string (nullable = true)
的列中的另一數據幀B中它的一些示例行會是
+------------+
|browsenodeid|
+------------+
| A|
| Z|
| M|
如何過濾呃A,這樣我就可以保留browse
包含B中任何一個browsenodeid
的值的所有行?在上面的例子而言,結果將是:
+---------+--=-----+---------+
| column 1| browse| column n|
+---------+--------+---------+
| foo1| [X,Y,Z]| bar1| <- because Z is a value of B.browsenodeid
| foo3| [M]| bar3| <- because M is a value of B.browsenodeid
如果我有一個值,那麼我會使用類似
A.filter(array_contains(A("browse"), single_value))
但我做一個列表或值的數據幀是什麼?
使用此方法的性能影響是什麼? – Hasson