Просто есть интересное наблюдение. Похоже, что ключевое слово "external" работает только с DF API, но не с синтаксисом SQL. Например,
1. jointypes = ['inner', 'outer', 'full', 'full_outer', 'left', 'left_outer', 'right', 'right_outer', 'left_semi', 'left_anti']
for i in jointypes:
print(i)
df1.join(df2, 'TDate', i).orderBy('TDate').show(30)
2. jointypes = ['inner', 'full', 'full outer', 'left', 'left outer', 'right', 'right outer', 'left semi', 'left anti']
for i in jointypes:
print(i)
spark.sql("select * from df1_view a {} join df2_view b on a.TDate = b.TDate".format(i)).show(30)
Оба работают нормально, но вторая выдает ошибку для «внешнего», когда оно включено в типы соединения. Ничего страшного, можно обрабатывать внешние объединения, используя «полный» или «полный внешний», просто хочу убедиться.