from pyspark.sql.functions import col
df1_a = df1.alias('df1_a')
df2_a = df2.alias('df2_a')
df1_a.join(df2_a, col('df1_a.a') == col('df2_a.a')).select('df1_a.f').show(2)
Spark Dataframe distinguish columns with duplicated name