簡體   English   中英

如何在DataFrame中獲取唯一的一對值

[英]How to get unique pairs of values in DataFrame

給定pySpark DataFrame,我如何獲得列col1col2所有可能的唯一組合。

我可以為單個列獲取唯一值,但是不能獲得col1col2唯一對:

df.select('col1').distinct().rdd.map(lambda r: r[0]).collect()

我試過了,但是似乎不起作用:

df.select(['col1','col2']).distinct().rdd.map(lambda r: r[0]).collect()

我嘗試過的那個

>>> df = spark.createDataFrame([(1,2),(1,3),(1,2),(2,3)],['col1','col2'])
>>> df.show()
+----+----+
|col1|col2|
+----+----+
|   1|   2|
|   1|   3|
|   1|   2|
|   2|   3|
+----+----+

>>> df.select('col1','col2').distinct().rdd.map(lambda r:r[0]).collect() ## your mapping
[1, 2, 1]
>>> df.select('col1','col2').distinct().show()
+----+----+
|col1|col2|
+----+----+
|   1|   3|
|   2|   3|
|   1|   2|
+----+----+
>>> df.select('col1','col2').distinct().rdd.map(lambda r:(r[0],r[1])).collect() 
[(1, 3), (2, 3), (1, 2)]

請嘗試以下功能:

    `df[['col1', 'col2']].drop_duplicates()`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM