c++ - 有没有办法过滤掉 Arrow::Array 和一些谓词?
问题描述
假设我有一个Arrow::Array
(或Dataframe
或ChunkedArray
,不重要)并且我有一些谓词。我想计算一个新的Arrow::BooleanArray
,它只存储应用于每个数组元素的这个谓词的结果。
我的情况是我有两个排序数组,date32
我想返回一个掩码,它告诉我第一个数组的值是否存在于第二个数组中。如下所示:
std::shared_ptr<arrow::BooleanArray> getDatesMask(
const std::shared_ptr<arrow::Array>& lhs,
const std::shared_ptr<arrow::Array>& lhs)
{
// some pseudo code how this could work
// for date in lhs:
// res.Append(date in rhs);
// return res;
}
解决方案
这听起来像你需要is_in
计算功能:
std::shared_ptr<arrow::BooleanArray> getDatesMask(
const std::shared_ptr<arrow::Array>& haystack,
const std::shared_ptr<arrow::Array>& needles)
{
arrow::Datum mask = arrow::compute::IsIn(haystack, needles).ValueOrDie();
return std::static_pointer_cast<arrow::BooleanArray>(mask.make_array());
}
is_in
(和其他计算功能)的文档: https ://arrow.apache.org/docs/cpp/compute.html#containment-tests
推荐阅读
- asp.net - 在测试时间更改用户
- vim - 如何更改 Vim 的 Markdown 内置突出显示的折叠样式?
- node.js - 如何在插入之间进行依赖有效性检查的 knex 事务中执行多个插入?
- caching - Dynacache - 缓存一切
- javascript - HTML 属性反斜杠何时转义为 JavaScript 字符串?
- r - 使用基于列的条件添加具有 mutate 的多个列,而不使用显式列名 + POSIX
- firebase - 现在禁止旧版 FCM 响应
- javascript - js函数被调用而不点击按钮
- r - 尝试在 R 中安装 homals 包的错误消息
- mongodb - 如何在 mongdb 中搜索 mm/dd/yyyy 格式的日期字符串