So I think I am getting close... now I have cp::Expression predicate = cp::call( "equal", {...}
cp::literal(arrow::MakeScalar(arrow::time64(arrow::TimeUnit::NANO), time))} ); And got /usr/include/arrow/compute/exec/expression.h:143:18: error: no matching conversion for functional-style cast from 'arrow::Result<std::shared_ptr<arrow::Scalar>>' to 'arrow::Datum' return literal(Datum(std::forward<Arg>(arg))); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/icexelloss/workspace/bamboo-streaming/examples/msw_filter_time.cc:66:44: note: in instantiation of function template specialization 'arrow::compute::literal<arrow::Result<std::shared_ptr<arrow::Scalar>>>' requested here cp::literal(arrow::MakeScalar(arrow::time64(arrow::TimeUnit::NANO), time))} Any help / pointers are much appreciated! On Mon, Feb 7, 2022 at 12:13 PM Li Jin <ice.xell...@gmail.com> wrote: > Another question - what is the correct way of creating a constant Scalar > that represents a time64 from a string in C++ (e.g. "10:00:00") ? > > I am trying to use cp::literal(arrow::MakeScalar(...)) but not sure what > to fill in the body of MakeScalar > > On Mon, Feb 7, 2022 at 12:05 PM Li Jin <ice.xell...@gmail.com> wrote: > >> Hello, >> >> Did some more work on this. Follow up question on this: >> >> I am doing a >> >> {cp::call("cast", >> >> {cp::field_ref("time_ns")}, >> >> cp::CastOptions::Safe(arrow::timestamp(arrow::TimeUnit::NANO, timezone)))}, >> >> And got: >> >> NotImplemented: Unsupported cast from uint64 to timestamp using function >> cast_timestamp >> >> Is this the wrong way to convert uint64 to timestamp or is it just not >> supported right now? >> >> On Thu, Feb 3, 2022 at 12:29 PM Rok Mihevc <rok.mih...@gmail.com> wrote: >> >>> By the way - if you're extracting components to segment time you might >>> prefer temporal rounding >>> >>> https://arrow.apache.org/docs/dev/cpp/compute.html?highlight=floor_temporal#conversions >>> . >>> >>> On Thu, Feb 3, 2022 at 5:19 PM Li Jin <ice.xell...@gmail.com> wrote: >>> > >>> > Gotcha. Thanks for the pointer! >>> > >>> > On Thu, Feb 3, 2022 at 11:06 AM Rok Mihevc <rok.mih...@gmail.com> >>> wrote: >>> > >>> > > > Gotcha. "Assume timezone" is like "tz_localize" in pandas. >>> > > >>> > > Indeed! >>> > > >>> > > > I didn't see any target timezone information being passed in the >>> "cast" >>> > > > function - how would I do that? >>> > > >>> > > Just cast with: >>> > > auto options = CastOptions::Safe(timestamp(TimeUnit::NANO, >>> > > "America/New_York")); >>> > > See examples in: >>> > > >>> > > >>> https://github.com/apache/arrow/blob/master/cpp/src/arrow/compute/kernels/scalar_cast_test.cc >>> > > >>> >>