in src/dataframe.rs [450:477]
fn join_on(
&self,
right: PyDataFrame,
on_exprs: Vec<PyExpr>,
how: &str,
) -> PyDataFusionResult<Self> {
let join_type = match how {
"inner" => JoinType::Inner,
"left" => JoinType::Left,
"right" => JoinType::Right,
"full" => JoinType::Full,
"semi" => JoinType::LeftSemi,
"anti" => JoinType::LeftAnti,
how => {
return Err(PyDataFusionError::Common(format!(
"The join type {how} does not exist or is not implemented"
)));
}
};
let exprs: Vec<Expr> = on_exprs.into_iter().map(|e| e.into()).collect();
let df = self
.df
.as_ref()
.clone()
.join_on(right.df.as_ref().clone(), join_type, exprs)?;
Ok(Self::new(df))
}