You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Jonathan Keane (Jira)" <ji...@apache.org> on 2022/04/12 16:53:00 UTC

[jira] [Created] (ARROW-16172) [C++] cast when reasonable for join keys

Jonathan Keane created ARROW-16172:
--------------------------------------

             Summary: [C++] cast when reasonable for join keys
                 Key: ARROW-16172
                 URL: https://issues.apache.org/jira/browse/ARROW-16172
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C++
            Reporter: Jonathan Keane


Joining an integer column with a float column that happens to have whole numbers errors. For kernels, we would autocast in this circumstance, so it's a surprising UX that this doesn't work + I need to type coerce on my own for this.

{code}
library(arrow, warn.conflicts = FALSE)
#> See arrow_info() for available features
library(dplyr, warn.conflicts = FALSE)

tab_int <- arrow_table(data.frame(let = letters, num = 1L:26L))
tab_float <- arrow_table(data.frame(let = letters, num = as.double(1:26)))

left_join(tab_int, tab_float) %>% collect()
#> Error in `handle_csv_read_error()`:
#> ! Invalid: Incompatible data types for corresponding join field keys: FieldRef.Name(num) of type int32 and FieldRef.Name(num) of type double
{code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)