我想从非数字数据框中删除所有列。我正在尝试复制一些这样做的Pandas代码:
df = df[df.select_dtypes(exclude=['object']).columns]
对于PySpark DataFrame我该怎么做?
首先,请在此处找到有关不同PySpark类型的参考。
下面的代码删除String cols:
df = spark.createDataFrame([
(1, "a", "xxx", None, "abc", "xyz","fgh"),
(2, "b", None, 3, "abc", "xyz","fgh"),
(3, "c", "a23", None, None, "xyz","fgh")
], ("ID","flag", "col1", "col2", "col3", "col4", "col5"))
from pyspark.sql.types import *
num_cols = [f.name for f in df.schema.fields if not isinstance(f.dataType, StringType)]
df2 = df.select([c for c in num_cols])
df2.show()
+---+----+
| ID|col2|
+---+----+
| 1|null|
| 2| 3|
| 3|null|
+---+----+
另外,(准确地说)您可以替换not isinstance
为isinstance
上面的链接,并包括您感兴趣的链接中的类型。希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句