我用的是scala和spark。我有两个Dataframe。
第一种是这样的:
+------+------+-----------+
| num1 | num2 | arr |
+------+------+-----------+
| 25 | 10 | [a,c] |
| 35 | 15 | [a,b,d] |
+------+------+-----------+
第二种是Dataframe头
num1, num2, a, b, c, d
我通过添加所有可能的头列创建了一个case类。
现在我想要的是,通过匹配num1和num2列,我必须检查arr列中的数组是否包含第二个Dataframe的头。如果是这样,则值应为1,否则为0。
所以所需的输出是:
+------+------+---+---+---+---+
| num1 | num2 | a | b | c | d |
+------+------+---+---+---+---+
| 25 | 10 | 1 | 0 | 1 | 0 |
| 35 | 15 | 1 | 1 | 0 | 1 |
+------+------+---+---+---+---+
1条答案
按热度按时间baubqpgj1#
如果我理解正确,您希望转换数组列
arr
对于每个可能的值,它将包含数组是否包含该值。如果是这样,你可以使用
array_contains
功能如下: