Сравните значение столбца Dataframe со значением списка - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть столбцы данных idframe и статьи, а также список значений «a_list», как показано ниже.

df = spark.createDataFrame([(1, 4), (2, 3), (5, 6)], ("id", "articles"))

a_list = [1, 4, 6]

Я пытаюсь сравнить значение списка со значением столбца dataframe «статьи», и, если найдено совпадение, обновляется столбец «E» с 1, иначе 0

Я использую "isin" в моем коде ниже

df['E'] = df.articles.isin(a_list).astype(int)

Получение

Ошибка типа: неожиданный тип: <type 'type'>

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 14 ноября 2018

Введите ваш тип в виде строки "int" вместо int, который является родным для Python type, который не распознается искрой; Также для создания столбца в кадре данных spark используйте метод withColumn вместо прямого назначения:

df.withColumn('E', df.articles.isin(a_list).astype('int')).show()
+---+--------+---+
| id|articles|  E|
+---+--------+---+
|  1|       4|  1|
|  2|       3|  0|
|  5|       6|  1|
+---+--------+---+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...