Map, set, and list types

The Data API supports map, set, and list types (CQL collection types).

Map

Use the map type to store a typed set of key-value pairs represented as a JSON object.

When you define a map column, you specify the data type for the keys and values. The key type must be either text or ascii. For an example defining a map column, see Create a table.

When written to a table, maps are internally ordered by their keys, and they are returned in that order.

The following limitations apply:

  • Maps cannot have a map, set, or list as a key or value.

  • Frozen maps created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.

Client behavior:

Set

Use the set type to store a typed collection of unique values represented as a JSON array.

When you define a set column, you specify the data type for the values. For an example defining a set column, see Create a table.

When written to a table, sets are ordered by their values.

The following limitations apply:

  • Frozen sets created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.

Client behavior:

List

Use the list type to store a typed collection of ordered, non-unique values represented as a JSON array.

When you define a list column, you specify the data type for the values.

When written to a table, lists elements are ordered by their position in the list.

The following limitations apply:

  • Frozen lists created in CQL (outside the Data API) aren’t accessible through the Data API. For more information, see Support for existing tables.

Client behavior:

  • Python: Accepts and returns plain arrays.

  • TypeScript: Accepts and returns plain arrays.

  • Java: Accepts and returns java.util.List<T>.

Was this helpful?

Give Feedback

How can we improve the documentation?

© Copyright IBM Corporation 2025 | Privacy policy | Terms of use Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: Contact IBM