#pyspark
Вопрос:
Здесь, в приведенном ниже коде, я должен использовать операцию группирования и подсчета отдельных операций в одном кадре данных, но при выполнении приведенного ниже кода я получаю синтаксическую ошибку :
df_retail_sales_transaction = df_retail_sales_transaction.join(df_transaction_line_item,['transaction_key','transaction_id'] , 'left_outer')
df_retail_sales_transaction = df_retail_sales_transaction.join(df_transaction_payment, ['transaction_id'], 'left_outer')
df1 = df_retail_sales_transaction.groupby('business_week', 'personnel_key', 'location_id','country_code')
.agg(df_retail_sales_transaction.select(countDistinct(df_transaction_line_item.transaction_id) , df_retail_sales_transaction.business_week, df_retail_sales_transaction.country_code, df_retail_sales_transaction.location_id , df_retail_sales_transaction.personnel_key))
.filter((df_product_hierarchy_type.product_hierarchy_level == "1") amp; (df_product_hierarchy_type.product_hierarchy_code == "1")
amp; (df_transaction_payment.method_of_payment_name.isin(
['VISA', 'Bank Debit', 'Cash', 'Mastercard', 'Split', 'American Express', 'BPme', 'BP Prepaid Card', 'BPrewards',
'Diners Club', 'Manual JCB', 'Union Pay', 'Manual MASTERCARD', 'Manual VISA', 'Manual BANKCARD', 'JCB',
'Manual AMEX', 'Manual DINERS CLUB'])))
Ошибка, которую я получаю, заключается в следующем :
pyspark.sql.utils.AnalysisException: "grouping expressions sequence is empty, and '`business_week`' is not an aggregate function. Wrap '(count(DISTINCT `transaction_id`) AS `count(DISTINCT transaction_id)`)' in windowing function(s) or wrap '`business_week`' in first() (or first_value) if you don't care which value you get.;;