相关疑难解决方法(0)

如何有效地找到PySpark数据帧中每列的Null和Nan值的计数?

import numpy as np

df = spark.createDataFrame(
    [(1, 1, None), (1, 2, float(5)), (1, 3, np.nan), (1, 4, None), (1, 5, float(10)), (1, 6, float('nan')), (1, 6, float('nan'))],
    ('session', "timestamp1", "id2"))
Run Code Online (Sandbox Code Playgroud)

预期产出

每列的数量为nan/null的数据帧

注意: 我在堆栈溢出中发现的先前问题仅检查null而不是nan.这就是为什么我创造了一个新问题.

我知道我可以在spark中使用isnull()函数来查找Spark列中的Null值的数量但是如何在Spark数据帧中找到Nan值?

apache-spark apache-spark-sql pyspark pyspark-sql

27
推荐指数
4
解决办法
6万
查看次数

PySpark 根据列名称/字符串条件删除列

我想将包含列表中任何单词的 pyspark 数据框中的列删除banned_columns,并从剩余的列中形成一个新的数据框

banned_columns = ["basket","cricket","ball"]
drop_these = [columns_to_drop for columns_to_drop in df.columns if columns_to_drop in banned_columns]

df_new = df.drop(*drop_these)
Run Code Online (Sandbox Code Playgroud)

的想法banned_columns是删除所有以basket和开头的列,以及名称中任意位置cricket包含该单词的列。ball

以上是我到目前为止所做的,但它不起作用(因为在新数据框中仍然包含这些列名称)

数据框示例

 sports1basketjump | sports
Run Code Online (Sandbox Code Playgroud)

在上面的列名称示例中,它将删除该列,sports1basketjump因为它包含单词篮子。

此外,使用filteror/andreduce函数是否比创建列表和 for 循环更优化?

python apache-spark pyspark

2
推荐指数
1
解决办法
1万
查看次数