在PySpark中,我试图比较两个常见列的数据帧。 Tha数据帧看起来像这样:
function onLoad(){
window.location = 'page1.html?pageName=page3.html&time=2000'
}
想法是检查df1是否包含子字符串为df2的行。如果是这样,请获取这些行。上面的结果将是:
df1 ... ...
aa1 ... ...
bb2 ... ...
ab3 ... ...
cc4 ... ...
df2 ... ...
a1 ... ...
b3 ... ...
或伪代码:
result
aa1
ab3
提前致谢!
答案 0 :(得分:0)
您需要leftsemi
加入。
语法将为df1.join(df2, how='leftsemi', on="join condition")
from pyspark.sql import functions as F
df1.show()
+---+
| a|
+---+
|aa1|
|bb2|
|ab3|
|cc4|
+---+
df2.show()
+---+
| b|
+---+
| a1|
| b3|
+---+
df1.join(F.broadcast(df2), how='leftsemi', on=F.col('a').endswith(F.col('b'))).show()
+---+
| a|
+---+
|aa1|
|ab3|
+---+