Тест пустого столбца Datatframe в python spark - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть два разных кадра данных:

Structure DF1:  A|B|C||E
Structure DF2: A|B||D|E

Я хочу создать третий Dataframe в результате объединения этих двух Dataframes, но прежде всего я должен сделать тест между столбцами 3 и 4:

If column 3 is empty: (Like is my exemple)
    result=column 4

else:
    result=column 3

Я сделал небольшой udf:

    def calculcolumn(col3, col4):
        if (col3 is None ):
            return col4
        else:
            return col3

My_udf=calculcolumn(col3,col4)

В моем примере он не принимает пустой столбец, например:

calculcolumn(,12)

Я получил:

SyntaxError: invalid syntax

Как мне сделать udf, чтобы проверить, пуст ли столбец, как в структуре моего фрейма данных ||?

1 Ответ

0 голосов
/ 17 сентября 2018

Не уверен, полностью ли я понимаю ваш вопрос или ожидаемый результат.

spark имеет функцию coalesce () для получения первого ненулевого значения.Будет ли это работать?

from pyspark.sql.types import *
from pyspark.sql.functions import coalesce

lettersSchema = StructType([
  StructField("a", StringType()),
  StructField("b", StringType()),
  StructField("c", StringType()),
  StructField("d", StringType()),
  StructField("e", StringType())
])

# create one row with "c" column null
df2 = spark.createDataFrame([
    ("A", "B", None, "D","E")
  ],
  schema=lettersSchema
)

df2.select("a", "b", coalesce("c", "d").alias("c_or_d"), "e").show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...