【发布时间】:2017-10-23 12:42:17
【问题描述】:
我有一个具有不同列(或属性)的数据框,我想获取另一个数据框,其中仅包含那些具有超过 6 个不同值的列。
我怎么能得到它?
【问题讨论】:
标签: python sql filter attributes pyspark
我有一个具有不同列(或属性)的数据框,我想获取另一个数据框,其中仅包含那些具有超过 6 个不同值的列。
我怎么能得到它?
【问题讨论】:
标签: python sql filter attributes pyspark
下面的 sn-p 满足您的要求。示例数据集包含三列(col1、col2、col3)。 col3 只有一个唯一值 3,而 col1 和 col2 有 6 个不同的值。最终的数据框只有 co11 和 col2。
df = spark.createDataFrame([(1,2,3),(10,20,3),(20,40,3),(40,50,3),(50,60,3),(60,70,3)],['col1','col2','col3'])
columns = [ column for column in df.columns if len(df.select(column).distinct().collect()) >= 6 ]
>>> df.select(columns).show()
+----+----+
|col1|col2|
+----+----+
| 1| 2|
| 10| 20|
| 20| 40|
| 40| 50|
| 50| 60|
| 60| 70|
+----+----+
【讨论】: