Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从pyspark中的数据帧中获取满足条件的列?_Python_Sql_Filter_Attributes_Pyspark - Fatal编程技术网

Python 如何从pyspark中的数据帧中获取满足条件的列?

Python 如何从pyspark中的数据帧中获取满足条件的列?,python,sql,filter,attributes,pyspark,Python,Sql,Filter,Attributes,Pyspark,我有一个具有不同列(或属性)的数据帧,我想得到另一个数据帧,它只包含那些具有6个以上不同值的列 我怎样才能得到它?下面的代码片段满足了您的要求。示例数据集有三列(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','c

我有一个具有不同列(或属性)的数据帧,我想得到另一个数据帧,它只包含那些具有6个以上不同值的列


我怎样才能得到它?

下面的代码片段满足了您的要求。示例数据集有三列(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|
+----+----+

下面的代码片段满足了您的要求。示例数据集有三列(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|
+----+----+

谢谢这正是我需要的!谢谢这正是我需要的!