У меня есть dataframe, и я хочу добавить для каждой строки new_col=max(some_column0)
сгруппированной других column1:искры присоединиться прибавками «Обнаружена декартов продуктом для внутреннего соединения»
maxs = df0.groupBy("catalog").agg(max("row_num").alias("max_num")).withColumnRenamed("catalog", "catalogid")
df0.join(maxs, df0.catalog == maxs.catalogid).take(4)
А во второй строке я получаю сообщение об ошибке:
AnalysisException: u'Detected cartesian product for INNER join between logical plans\nProject ... Use the CROSS JOIN syntax to allow cartesian products between these relations.;'
Что я не понимаю: почему искру находит здесь декартовую продукцию?
Возможный способ получить эту ошибку: я сохраняю DF в таблице Hive, а затем снова инициализирую DF как выбор из таблицы. Или замените эти 2 строки на запрос куста - неважно. Но я не хочу сохранять DF.