Есть ли способ найти количество столбцов с данными в фрейме данных pyspark - PullRequest
1 голос
/ 19 января 2020

У меня есть фрейм данных pyspark, который имеет 7 столбцов, я должен добавить новый столбец с именем «sum» и вычислить количество столбцов, в которых есть данные (не нулевые) в столбце sum. Пример фрейма данных в котором желтой выделенной частью требуется ответ

1 Ответ

1 голос
/ 19 января 2020

Эта сумма может быть рассчитана так:

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 import functions as F
from pyspark.sql.types import IntegerType

df2 = df.withColumn("sum",sum([(~F.isnull(df[col])).cast(IntegerType()) for col in df.columns]))
df2.show()
+---+----+----+----+----+----+----+---+
| ID|flag|col1|col2|col3|col4|col5|sum|
+---+----+----+----+----+----+----+---+
|  1|   a| xxx|null| abc| xyz| fgh|  6|
|  2|   b|null|   3| abc| xyz| fgh|  6|
|  3|   c| a23|null|null| xyz| fgh|  5|
+---+----+----+----+----+----+----+---+

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...