Как реализовать «псевдоним» для фрейма данных (не для столбца фрейма данных) в pyspark - PullRequest
0 голосов
/ 17 февраля 2019

используя spark 2.3.2 с python, я пытаюсь реализовать псевдоним, чтобы объединить два кадра данных после применения некоторого фильтра в одной строке, как показано в коде ниже.Но его выбрасывание ниже ошибки

код:

    orders.filter(orders.order_status.isin("CLOSED","COMPLETE")).select("order_id","order_date").alias("a").\
        join(orderitems.select("order_item_order_id","order_item_subtotal").alias("b"),a.order_id==b.order_item_order_id).\
        drop(b.order_item_order_id)

ошибка:

        NameError: name 'a' is not defined

Мне нужно получить ЗАКРЫТЫЕ и ПОЛНЫЕ заказы из dataframe: orders, а затем в том же самомшаг, мне нужно соединить результирующий фрейм данных с другим фреймом данных: orderitems и затем удалить дубликат столбца.Поэтому я ищу реализацию "псевдонима" для фрейма данных так же, как псевдоним для таблицы в SQL.Может ли кто-нибудь помочь мне понять, где я иду не так?

1 Ответ

0 голосов
/ 17 февраля 2019

вам не нужен псевдоним - вы можете указать orderitems.order_item_order_id в директиве drop и order.order_id==orderitems.order_item_order_id в присоединяющемся ключе

Если вы хотите более короткие имена, вы можете разбить это на несколько операторов (общеевыполнение будет таким же, поскольку spark генерирует план выполнения позже)

a=orders.filter(orders.order_status.isin("CLOSED","COMPLETE")).select("order_id","order_date")
b=orderitems.select("order_item_order_id","order_item_subtotal")

, а затем вы можете использовать a и b в соединении и отбрасывать

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