Я пытался использовать искровой SQL для накопления суммы, и для этого я использовал оконную функцию. Но проблема, похоже, связана с другими частями кода.
Я новичок в этих кодах, но я бы хотел немного научиться этому.
q4_all = q4_all_0.withColumn("sup_diff", col('pay_day_supply_cnt') + col('diff'))
q4_all.createOrReplaceTempView("q4_all")
q4_all = spark.sql("SELECT *, SUM(pay_day_supply_cnt) over(partition by id and CAST(session_rank as CHAR)) AS sum_sup, \
SUM(sup_diff) OVER(partition by id and session_rank) AS sum_sup_diff \
FROM q4_all ORDEFR BY id, CAST(Days as int)""")
ОШИБКА:Произошла непредвиденная ошибка при токенизации ввода. Следующая трассировка может быть повреждена или недействительна. Сообщение об ошибке: ('EOF in multi-line string', (1, 45))
ParseException: "\ nmismatched input 'BY'ожидание (строка 4, позиция 21) \ n \ n == SQL == \ n \ n SELECT *, SUM (pay_day_supply_cnt) более (разделение по id и CAST (session_rank как CHAR)) AS sum_sup, \ n SUM (sup_diff) OVER (разделение по id и session_rank) AS sum_sup_diff \ n ОТ q4_all ORDEFR BY id, CAST (Days as int) \ n --------------------- ^^^ \ n "