You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "John Sheffield (Jira)" <ji...@apache.org> on 2020/12/29 23:39:00 UTC

[jira] [Issue Comment Deleted] (ARROW-11067) [R] read_csv_arrow silently fails to read some strings and returns nulls

     [ https://issues.apache.org/jira/browse/ARROW-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Sheffield updated ARROW-11067:
-----------------------------------
    Comment: was deleted

(was: I pulled a few strings over a much larger dataset and came to something useful. There is an extremely definite 'striping' of success/failure patterns beginning at nchar of 32,767 (where failures start); then the failures stop and all cases succeed between 65,685 and 98,832 chars; and then we switch back to failures. The graph below captures it all.   

(Unfortunately, can't share the full dataset this came from for confidentiality reasons, but I'm betting that I can recreate the effect on something simulated. I also attached the distribution of character counts by success/failure – this is the CSV behind the plot, dropping cases below 30k characters which 100% succeeded.)

[^arrow_failure_cases.csv]

 

!arrowbug1.png!)

> [R] read_csv_arrow silently fails to read some strings and returns nulls
> ------------------------------------------------------------------------
>
>                 Key: ARROW-11067
>                 URL: https://issues.apache.org/jira/browse/ARROW-11067
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: R
>            Reporter: John Sheffield
>            Priority: Major
>             Fix For: 3.0.0
>
>         Attachments: arrow_failure_cases.csv, arrowbug1.png, demo_data.csv
>
>
> A sample file is attached, showing 10 rows each of strings with consistent failures (false_na = TRUE) and consistent successes (false_na = FALSE). The strings are in the column `json_string` – if relevant, they are geojsons with min nchar of 33,229 and max nchar of 202,515.
> When I read this sample file with other R CSV readers (readr and data.table shown), the files are imported correctly and there are no NAs in the json_string column.
> When I read with arrow::read_csv_arrow, 50% of the sample json_string column end up as NAs. as_data_frame TRUE or FALSE does not change the behavior, so this might not be limited to the R interface, but I can't help debug much further upstream.
>  
>  
> {code:java}
> aaa1 <- arrow::read_csv_arrow("demo_data.csv", as_data_frame = TRUE)
> aaa2 <- arrow::read_csv_arrow("demo_data.csv", as_data_frame = FALSE)
> bbb <- data.table::fread("demo_data.csv")
> ccc <- readr::read_csv("demo_data.csv")
> mean(is.na(aaa1$json_string)) # 0.5
> mean(is.na(aaa2$column(1))) # Scalar 0.5
> mean(is.na(bbb$json_string)) # 0
> mean(is.na(ccc$json_string)) # 0{code}
>  
>  
>  * arrow 2.0 (latest CRAN)
>  * readr 1.4.0
>  * data.table 1.13.2
>  * R version 4.0.1 (2020-06-06)
>  * MacOS Catalina 10.15.7 / x86_64-apple-darwin17.0
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)