Во-первых, способ слияния:
result = Main.join(Table2, Main.H1==Table2.H1, 'left')
будет иметь два столбца с именем 'H1', один из главной таблицы, а другой из таблицы 2.
Итак, лучший способ будет слиться так, как сказал Мухаммед. Но его можно еще улучшить, если использовать функцию объединения.
Main.join(Table2.withColumnRenamed("H2","H22"), ['H1'],'left').drop("H22")\
.join(Table3.withColumnRenamed("R","R2"),['H2'])\
.withColumn("R", F.coalesce(F.col("R"), F.col("R2"))).drop("R2").show()
Подробнее см. По этой ссылке - https://www.youtube.com/watch?v=6nZ5KiRuNfc