我知道可以使用sparklyr
像这样在两列上进行连接:
final <- tbl1 %>% left_join(tbl2, by = c("x1" = "x2", "y1" = "y2"))
但是有一种方法可以在我的impala
sql查询中连接如下两列:
select
a.col1
,b.col2
from tbl1 a
left join
(select * from tbl1 )b
on a.id = b.id
and( a.date1 = b.date1
or
a.date2 = b.date2 )
我想那会是这样:
final <- tbl1 %>% left_join(tbl2, by = c("x1" = "x2",c("y1" = "y2" or "y3" = "y4")))
答案 0 :(得分:1)
您可以只使用SQL:
df1 %>% sdf_register("tbl1")
df2 %>% sdf_register("tbl2")
query <- "select ..."
result <- sc %>% spark_session() %>% invoke("sql", query) %>% sdf_register()
请注意,您可能必须为列加上别名,以避免输出中出现重复的名称。