You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem or challenge?
DataFusion 53.1 has built-in support for newline-delimited JSON
(SessionContext::read_json / register_json), but the Java binding
currently only exposes Parquet (#18) and CSV (#21). Users wanting to
query JSON files have to fall back to CREATE EXTERNAL TABLE via SQL,
which loses the typed-options ergonomics the Parquet/CSV bindings
already provide.
Describe the solution you'd like
Mirror the existing reader pattern:
Add an NdJsonReadOptions value class analogous to ParquetReadOptions / CsvReadOptions (file extension, schema,
schema-infer-max-records, compression, etc.).
Expose SessionContext.registerJson(name, path[, options]) and readJson(path[, options]).
Cover with tests in the spirit of SessionContextCsvTest / ParquetReadOptionsTest.
Describe alternatives you've considered
Users can issue CREATE EXTERNAL TABLE … STORED AS JSON via SessionContext.sql. This works but bypasses the typed builder pattern
and gives a less discoverable Java API.
Additional context
DataFusion's JSON reader is in the default feature set, so no Cargo
feature flag changes are required on the native side.
Is your feature request related to a problem or challenge?
DataFusion 53.1 has built-in support for newline-delimited JSON
(
SessionContext::read_json/register_json), but the Java bindingcurrently only exposes Parquet (#18) and CSV (#21). Users wanting to
query JSON files have to fall back to
CREATE EXTERNAL TABLEvia SQL,which loses the typed-options ergonomics the Parquet/CSV bindings
already provide.
Describe the solution you'd like
Mirror the existing reader pattern:
NdJsonReadOptionsvalue class analogous toParquetReadOptions/CsvReadOptions(file extension, schema,schema-infer-max-records, compression, etc.).
proto/json_read_options.protoand pass options through theestablished proto-over-JNI convention (refactor: pass csv and parquet read options via protobuf #29).
SessionContext.registerJson(name, path[, options])andreadJson(path[, options]).SessionContextCsvTest/ParquetReadOptionsTest.Describe alternatives you've considered
Users can issue
CREATE EXTERNAL TABLE … STORED AS JSONviaSessionContext.sql. This works but bypasses the typed builder patternand gives a less discoverable Java API.
Additional context
DataFusion's JSON reader is in the default feature set, so no Cargo
feature flag changes are required on the native side.