编辑 下面只是df的一个例子,我需要一个可扩展的解决方案。实际df有30多个列(p1、p2、p3等)
我有一个像这样的df-
+---+---+----+
| id| p1| p2 |
+---+---+------
|foo|[1]| null|
|bar|[2]| [2] |
|loo|[3]| [4] |
+---+---+-----+
我想要这样的输出-
+---+---+----+--------+
| id| p1| p2 | concat |
+---+---+------+------+
|foo|[1]| null| [1] |
|bar|[2]| [2] | [2] |
|loo|[3]| [4] | [3,4]|
+---+---+-----+--------
因此,新列concat将只保存来自p1和p2列的唯一值 我在pyspark中尝试了F.concat()方法,但它没有给出预期的结果。 感谢您的帮助
谢谢
如果您有Spark 2.4+
对于Spark 2.3及以下版本
Hi to concat值如果存在唯一值,则可以使用以下代码。我使用lambda函数分析所有数据帧行,并声明check_unique_vlaues(),它为分析的行返回uniques值
编辑:
要从一行中的所有列中获取唯一值,而无需先获取,我们可以使用适用于pandas系列的
unique()
函数相关问题 更多 >
编程相关推荐