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

Я попытался импортировать две функции, как показано ниже, но получаю ошибку

from pyspark.sql.functions import regexp_replace, col

df1 = sales.alias('a').join(customer.alias('b'),col('b.ID') == col('a.ID'))\
           .select([col('a.'+xx) for xx in sales.columns] + col('b.others')

TypeError: 'str' object is not callable

Я действительно не понимаю, что не так с этой строкой кода? Спасибо.

1 Ответ

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

Функция выбора PySpark ожидает только имена строковых столбцов, и нет необходимости отправлять объекты столбцов в виде массивов. Таким образом, вы можете просто сделать это вместо

from pyspark.sql.functions import regexp_replace, col

df1 = sales.alias('a').join(customer.alias('b'),col('b.ID') == col('a.ID'))\
           .select(sales.columns + ['others'])
...