Пока что то, что я обнаружил на SO или аффилированных сайтах, не работает изящно или не работает с моим тестированием на Databricks, может быть, я не видел его здесь.
Здесь снова возникает необходимость:
У меня есть Avg_ Open _By_Year, Avg_ High _By_Year, Avg_ Low _By_Year и Avg_ Close _By_Year, у всех есть общий столбец ' Год '.
Поэтому я хочу объединить эти три вместе, чтобы получить окончательный df вроде: Year, Open, High, Low, Close
В данный момент я должен использовать уродливый способ присоединиться к ним в столбце «Год»:
finalDF = Avg_Open_By_Year.join(Avg_High_By_Year, on=['Year'], how='left_outer').join(Avg_Low_By_Year, on=['Year'], how='left_outer').join(Avg_Close_By_Year, on=['Year'], how='left_outer')
Я думаю, что должен быть благодатный способ выполнить sh, как UnionAll в SQL.
Там здесь возможное решение https://datascience.stackexchange.com/questions/11356/merging-multiple-data-frames-row-wise-in-pyspark/11361#11361, выбранный ответ описан ниже:
from functools import reduce # For Python 3.x
from pyspark.sql import DataFrame
def unionAll(*dfs):
return reduce(DataFrame.unionAll, dfs)
unionAll(td2, td3, td4, td5, td6, td7, td8, td9, td10)
Однако, я делаю это в записной книжке Databricks, выдает ошибку:
NameError: имя 'functools' не определено
Было бы очень полезно, если бы некоторые можно пролить на меня больше света. Большое спасибо.