我想在一个公共属性上加入两个Arrow表。Arrow有一些C++ API来实现同样的目标吗?我确实找到了一个名为HashJoin的东西,但我不确定它是否可以用于连接2个表。任何关于这方面的指示都会非常有用。
发布于 2022-01-25 20:17:06
如果您正在使用C++ API,那么可以使用ExecPlan来实现连接。ExecPlan API仍然标记为实验性,但它是很快就会有一些更新的文档。正在添加一个示例,作为这个公关的一部分。这个例子的关键是:
ARROW_ASSIGN_OR_RAISE(left_source,
cp::MakeExecNode("scan", plan.get(), {}, l_scan_node_options));
ARROW_ASSIGN_OR_RAISE(right_source,
cp::MakeExecNode("scan", plan.get(), {}, r_scan_node_options));
arrow::compute::HashJoinNodeOptions join_opts{arrow::compute::JoinType::INNER,
/*in_left_keys=*/{"lkey"},
/*in_right_keys=*/{"rkey"}};
ARROW_ASSIGN_OR_RAISE(
auto hashjoin,
cp::MakeExecNode("hashjoin", plan.get(), {left_source, right_source}, join_opts));您可以查看HashJoinNodeOptions 这里。
https://stackoverflow.com/questions/70387215
复制相似问题