Мне нужно параметризованное условие соединения, и столбцы соединения должны получать проходы от CLI (я использую: prompt.in pyspark)
мой код:
x1 = col(argv[1])
x2 = col(argv[2])
df = df1.join(df2, (df1.x1 == df2.x2))
Это мой сценарий:
join.py empid emdid
я получаю эту ошибку
df has no such columns.
Любые идеи о том, как решить эту проблему?
Следуйте этому подходу. Он будет работать, даже если ваши кадры данных присоединяются к столбцу с тем же именем.
argv = ['join.py', 'empid', 'empid']
x1 = argv[1]
x2 = argv[2]
df1 = spark.createDataFrame([(1, "A"),(2, "B")], ("empid", "c2"))
df2 = spark.createDataFrame([(1, "A"),(2, "B")], ("empid", "c2"))
df = df1.join(df2, df1[x1] == df2[x2])
df.show()