如何使用Scala过滤/删除Spark数据集列中的子集?

时间:2018-05-07 23:05:00

标签: apache-spark-sql spark-dataframe apache-spark-dataset

我有一个只有一列Array[String]列的数据集。

+------------------------+
|                    col |
+------------------------+
|["AA", "BB", "CC", "DD"]|
|["BB", "CC", "DD"]      |
|["AA","CC"]             |
|["EE", "FF", "GG"]      |
|["FF"]                  |
|["EE", "GG"]            |
|["KK", "LL", "MM"]      |
+------------------------+

我想从数据集中过滤/删除那些属于其他行子集的行,以便生成的数据集如下所示:

    +------------------------+
    |                    col |
    +------------------------+
    |["AA", "BB", "CC", "DD"]|
    |["EE", "FF", "GG"]      |
    |["KK", "LL", "MM"]      |
    +------------------------+

此处["BB", "CC", "DD"]["AA","CC"]["AA", "BB", "CC", "DD"]的子集,["FF"]["EE", "GG"]["EE", "FF", "GG"]的子集。因此,这些子集将从结果数据集中消除。

1 个答案:

答案 0 :(得分:0)

你将Array [String] .map()转换为Array [Set],然后使用subsetOf来过滤数组[Set]