我需要参数化连接条件,并且连接列应该从CLI获得通行证(我正在使用:pyspark中的提示符。
我的代码是:
x1 = col(argv[1])
x2 = col(argv[2])
df = df1.join(df2, (df1.x1 == df2.x2))
这是我的脚本:
join.py empid emdid
我收到此错误
df没有这样的列。
关于如何解决此问题的任何想法?
答案 0 :(得分:1)
按照这种方法,即使您的数据框连接到具有相同名称的列上,它也将起作用。
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()