Как я могу проверить, есть ли в моем столбце значение в другом - PullRequest
1 голос
/ 17 мая 2019

У меня есть один кадр данных SQL, который имеет три столбца

port    test1        test2
123     apple        ramesh eat apple
436     banana       banana is not a friute
467     cat 
78      tiger        cat is pet                     

И я хочу найти, что значение столбца test1 присутствует в значении столбца test2. И я хочу выводить вот так

port test1  test2                        check
123  apple  ramesh eat apple               1
436  banana banana is not a fruit          1
467  cat                                   0
78   tiger  cat is pet                     0

Ответы [ 3 ]

2 голосов
/ 17 мая 2019

Вы можете использовать функцию contains для решения этой проблемы. Это довольно просто.

df = df.withColumn('check',when(col('test2').contains(col('test1')),1).otherwise(0))
df.show(truncate=False)

+----+------+---------------------+-----+
|port|test1 |test2                |check|
+----+------+---------------------+-----+
|123 |apple |ramesh eat apple     |1    |
|436 |banana|banana is not a fruit|1    |
|467 |cat   |null                 |0    |
|78  |tiger |cat is pet           |0    |
+----+------+---------------------+-----+
0 голосов
/ 17 мая 2019

Вы можете сделать это, используя синтаксис sql:

from pyspark.sql import functions as F

df.withColumn(
    "check",
    F.expr("case when test2 like concat('%', test1, '%') then 1 else 0 end")
).show()
0 голосов
/ 17 мая 2019

Вы можете использовать

df['check'] = df.apply(lambda row: int(row.test1 in row.test2), axis = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...