---
title: Data import and export
---

This cheat sheet provides quick access to common data import and export commands. For more detailed information, see the [Data guide](../data-guide/batch-data/batch-intro.md).

## Data import

### CSV

```python
from deephaven.csv import read

# Read a CSV file from a URL or file path
table = read("https://path/to/your/file.csv")
# Or from a local file path
table = read("/path/to/your/file.csv")
```

```groovy
import io.deephaven.csv.CsvTools

// Read a CSV file from a URL or file path
table = CsvTools.readCsv("https://path/to/your/file.csv")
// Or from a local file path
table = CsvTools.readCsv("/path/to/your/file.csv")
```

### Parquet

```python
from deephaven.parquet import read

# Read a Parquet file
table = read("/path/to/your/file.parquet")
```

```groovy
import io.deephaven.parquet.table.ParquetTools

// Read a Parquet file
table = ParquetTools.readTable("/path/to/your/file.parquet")
```

### Deephaven format

See [Deephaven format tables](../data-guide/batch-data/deephaven-format-tables.md) for more information.

```python
import deephaven_enterprise.table_tools as table_tools

# Read a table in Deephaven format
table = table_tools.read_table("/path/to/your/table/")
```

```groovy
import io.deephaven.enterprise.table.EnterpriseTableTools

// Read a table in Deephaven format
table = EnterpriseTableTools.readTable("/path/to/your/table/")
```

### Kafka

```python
from deephaven.stream.kafka import consumer as kc
import deephaven.dtypes as dht

# Consume from a Kafka topic
table = kc.consume(
    {"bootstrap.servers": "localhost:9092"},
    "your_topic",
    key_spec=kc.KeyValueSpec.IGNORE,
    value_spec=kc.simple_spec("Value", dht.string),
    table_type=kc.TableType.append(),
)
```

```groovy
import io.deephaven.kafka.KafkaTools

// Consume from a Kafka topic
kafkaProps = new Properties()
kafkaProps.put('bootstrap.servers', 'localhost:9092')
table = KafkaTools.consumeToTable(
    kafkaProps,
    'your_topic',
    KafkaTools.ALL_PARTITIONS,
    KafkaTools.ALL_PARTITIONS_DONT_SEEK,
    KafkaTools.Consume.IGNORE,
    KafkaTools.Consume.simpleSpec('Value', java.lang.String),
    KafkaTools.TableType.append()
)
```

## Data export

### Parquet

```python
from deephaven.parquet import write

# Write a table to a Parquet file
write(my_table, "/path/to/your/output.parquet")
```

```groovy
import io.deephaven.parquet.table.ParquetTools

// Write a table to a Parquet file
ParquetTools.writeTable(myTable, "/path/to/your/output.parquet")
```

### CSV

```python
from deephaven.csv import write

# Write a table to a CSV file
write(my_table, "/path/to/your/output.csv")
```

```groovy
import io.deephaven.csv.CsvTools

// Write a table to a CSV file
CsvTools.writeCsv(myTable, "/path/to/your/output.csv")
```

### Deephaven format

See [Deephaven format tables](../data-guide/batch-data/deephaven-format-tables.md) for more information.

```python
import deephaven_enterprise.table_tools as table_tools

# Write a table to a Deephaven format directory
table_tools.write_table(my_table, "/path/to/your/output/")
```

```groovy
import io.deephaven.enterprise.table.EnterpriseTableTools

// Write a table to a Deephaven format directory
EnterpriseTableTools.writeTable(myTable, "/path/to/your/output/")
```

### Deephaven table storage

```python
# Write a table to Deephaven table storage
db.add_unpartitioned_table("MyNamespace", "MyTable", my_table)

# Or create data indexes along with the table
db.add_unpartitioned_table(
    "MyNamespace", "MyTable", my_table, data_indexes=[["Symbol"]]
)
```

```groovy
// Write a table to Deephaven table storage
db.addUnpartitionedTable("MyNamespace", "MyTable", myTable)

// Or use UnpartitionedUserTableOptions to also create data indexes with the table
import io.deephaven.enterprise.database.inputtables.UnpartitionedUserTableOptions

db.addUnpartitionedTable(
    UnpartitionedUserTableOptions.builder()
        .namespace("MyNamespace")
        .tableName("MyTable")
        .tableDefinition(myTable.getDefinition())
        .addDataIndex(["Symbol"] as String[])
        .build(),
    myTable
)
```
