Попробуйте это:
from pyspark.sql import SparkSession
from pyspark.sql.types import *
from pyspark.sql.functions import *
spark = SparkSession.builder.appName('Stack_overflow').getOrCreate()
#DEFINING TWO DF's
df1schema = 'df1col1 int,df1col2 int,df1col3 int,df1col4 int'
df1 = spark.createDataFrame([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]],schema=df1schema)
df2schema = 'df2col1 int,df2col2 int'
df2 = spark.createDataFrame([[123,4],[234,5],[345,6],[456,7]],schema=df2schema)
#JOIN
df1.join(df2,concat(df1.df1col1,df1.df1col2,df1.df1col3) == df2.df2col1).show()
и вы получите:
df1:pyspark.sql.dataframe.DataFrame = [df1col1: integer, df1col2: integer ... 2 more fields]
df2:pyspark.sql.dataframe.DataFrame = [df2col1: integer, df2col2: integer]
+-------+-------+-------+-------+-------+-------+
|df1col1|df1col2|df1col3|df1col4|df2col1|df2col2|
+-------+-------+-------+-------+-------+-------+
| 4| 5| 6| 7| 456| 7|
| 2| 3| 4| 5| 234| 5|
| 3| 4| 5| 6| 345| 6|
| 1| 2| 3| 4| 123| 4|
+-------+-------+-------+-------+-------+-------+
Если вы хотите, чтобы столбец был конкатенен из трех столбцов, создайте withcolumn и отбросьте другие столбцы.