根据 Pyspark Dataframe 的长度值删除列

Droping columns based on the length value Pyspark Dataframe

我有一个 Pyspark 数据框,我需要在其中检查 number 列,如果 drop the row if the size of value present is not 4

    +------+
    |number| 
    +------+
    |  1234|
    |  1345|
    |   223|
    +------+

所需输出:

+------+
|number| 
+------+
|  1234|
|  1345|
+------+ 

我知道如何使用 length(df.number) 计算数字的大小,但我无法实现所需的条件。

请帮我解决这个问题。非常感谢!

您可以使用过滤器,并且只有长度为 4 的数字

 from pyspark.sql import functions as F


    # InputDF
    # +------+
    # |number|
    # +------+
    # |  1234|
    # |  1345|
    # |   223|
    # +------+

    df.filter(F.length("number") == 4).show()

    # OutputDF
    # +------+
    # |number|
    # +------+
    # |  1234|
    # |  1345|
    # +------+