[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/apache/datafusion-java/main/docs/source/index.md [Back]  [Original]


# Apache DataFusion Java

Java bindings for [Apache DataFusion]. Queries run in native Rust and results
return to the JVM as [Apache Arrow] batches via the Arrow C Data Interface.

[Apache DataFusion]: https://datafusion.apache.org/
[Apache Arrow]: https://arrow.apache.org/

> Early development: the API will change between releases. Bug reports
> and contributions welcome.

## Quickstart

```java
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.vector.ipc.ArrowReader;
import org.apache.datafusion.DataFrame;
import org.apache.datafusion.SessionContext;

try (var allocator = new RootAllocator();
     var ctx = new SessionContext()) {

    ctx.registerParquet("orders", "/path/to/orders.parquet");

    try (DataFrame df = ctx.sql(
            "SELECT o_orderpriority, COUNT(*) AS n " +
            "FROM orders GROUP BY o_orderpriority");
         ArrowReader reader = df.collect(allocator)) {
        while (reader.loadNextBatch()) {
            var batch = reader.getVectorSchemaRoot();
            // ...
        }
    }
}
```

See the [User Guide](user-guide/index.md) for installation, the DataFrame and
SQL APIs, and Parquet ingestion. See the [Contributor Guide](contributor-guide/index.md)
for build, test, and release workflows.

```{toctree}
:maxdepth: 1
:caption: Links
:hidden:

GitHub Repository 
Issue Tracker 
Apache DataFusion 
Code of Conduct 
```

```{toctree}
:maxdepth: 2
:caption: Documentation
:hidden:

User Guide 
Contributor Guide 
```

Web Proxy Viewer  |  New URL  |  Original Page