PySpark:如何删除一个DataFrame的非数字列?

詹姆斯·亚当斯

我想从非数字数据框中删除所有列。我正在尝试复制一些这样做的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 isinstanceisinstance上面的链接并包括您感兴趣的链接中的类型。希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何确保excel列中的数字列表从最后一个非零数字开始

如何从pyspark的dataframe列中获取第一个值和最后一个值?

删除尾随非数字字符和最后一个小数/数字

Java如何删除长号的最后一个数字?

如何编写一个pyspark-dataframe进行redshift?

删除数组中长度小于数字 Pyspark 数据帧的最后一个元素

如何从另一个DataFrame的数据中删除一个DataFrame的行?

PySpark:将一个DataFrame列的值与另一个DataFrame列进行匹配

查询以删除所有非数字,但仅保留最后一个句点/点

删除所有非数字字符,但保留一个特定的单词

如何编写一个QuickCheck属性,该属性期望一个非零数字的非空列表?

如何根据使用 Pyspark 的条件从另一个表更新表的 Spark DataFrame 列值

删除较大数字的最后一个数字(特定列)

如何使用regexp_replace删除从第一个非数字字符开始的字符串的最后一部分

如何获取最后一个非NA列的值

查找一行中最后一个非零数字的列号的公式?

从另一个 DataFrame 向 Pyspark DataFrame 添加列

如何确定矩阵中矩阵的每一列中最后一个例如100个非零数字的均值

PySpark:获取数据框中每个列的第一个非空值

删除列的数字(零)并在数据框中创建一个新列

如果列在另一个 Spark Dataframe 中,Pyspark 创建新列

如何在删除空值的同时合并N个非数字列?

如何在pyspark中平均一个由空分隔的数字块?

从 pyspark df 列中删除最后一个字符

Pyspark:创建一个滞后列

Pyspark SQL:根据一个值是否存在于另一个DataFrame的列中创建一个新列

如何删除列中的第一个单词和最后一个单词?

如何在PySpark中为一个组遍历Dataframe / RDD的每一行?

如何从Pandas DataFrame列中减去一个值