Movatterモバイル変換


[0]ホーム

URL:


Skip to contents

Read a JSON file

Source:R/json.R
read_json_arrow.Rd

Wrapper aroundJsonTableReader to read a newline-delimited JSON (ndjson) file into adata frame or Arrow Table.

Usage

read_json_arrow(file,  col_select=NULL,  as_data_frame=TRUE,  schema=NULL,...)

Arguments

file

A character file name or URI, connection, literal data (either asingle string or araw vector), an Arrow input stream, or aFileSystemwith path (SubTreeFileSystem).

If a file name, a memory-mapped ArrowInputStream will be opened andclosed when finished; compression will be detected from the file extensionand handled automatically. If an input stream is provided, it will be leftopen.

To be recognised as literal data, the input must be wrapped withI().

col_select

A character vector of column names to keep, as in the"select" argument todata.table::fread(), or atidy selection specificationof columns, as used indplyr::select().

as_data_frame

Should the function return atibble (default) oran ArrowTable?

schema

Schema that describes the table.

...

Additional options passed toJsonTableReader$create()

Value

Atibble, or a Table ifas_data_frame = FALSE.

Details

If passed a path, will detect and handle compression from the file extension(e.g..json.gz).

Ifschema is not provided, Arrow data types are inferred from the data:

  • JSON null values convert to thenull() type, but can fall back to any other type.

  • JSON booleans convert toboolean().

  • JSON numbers convert toint64(), falling back tofloat64() if a non-integer is encountered.

  • JSON strings of the kind "YYYY-MM-DD" and "YYYY-MM-DD hh:mm:ss" convert totimestamp(unit = "s"),falling back toutf8() if a conversion error occurs.

  • JSON arrays convert to alist_of() type, and inference proceeds recursively on the JSON arrays' values.

  • Nested JSON objects convert to astruct() type, and inference proceeds recursively on the JSON objects' values.

Whenas_data_frame = TRUE, Arrow types are further converted to R types.

Examples

tf<-tempfile()on.exit(unlink(tf))writeLines('    { "hello": 3.5, "world": false, "yo": "thing" }    { "hello": 3.25, "world": null }    { "hello": 0.0, "world": true, "yo": null }  ',tf, useBytes=TRUE)read_json_arrow(tf)#># A tibble: 3 x 3#>   hello world yo#><dbl><lgl><chr>#>1  3.5  FALSE thing#>2  3.25NANA#>3  0    TRUENA# Read directly from strings with `I()`read_json_arrow(I(c('{"x": 1, "y": 2}','{"x": 3, "y": 4}')))#># A tibble: 2 x 2#>       x     y#><int><int>#>1     1     2#>2     3     4

[8]ページ先頭

©2009-2026 Movatter.jp