Big Data Types
A library to transform Case Classes into Database schemas and to convert implemented types into another types
This is a type safe library that converts basic Scala types and product types into different database types and schemas, it also allows converting implemented types into another types, for example, a Spark Schema can be automatically converted into a BigQuery table, or a BigQuery table into a Cassandra table without having code that relates those types between them.
What we can do with this library:
- Using multiple modules:
- Probably the most powerful thing of the library, any implemented type can be converted to any other implemented type. e.g: A Spark Schema can be converted into a BigQuery Table
- If new types are implemented in the library (e.g: Avro & Parquet schemas, Json Schema, ElasticSearch templates, etc) they will get automatically conversions for the rest of the types
- BigQuery: Create BigQuery Tables (or Schemas) using Case Classes or other types.
- BigQuery module has also a complete integration with the system, so tables can be created using only this library.
- Spark: Create Spark Schemas from Case Classes or from any other implemented type.
- Cassandra: Create
CreateTableobjects from Case Classes. (They can be printed as acreate tablestatement too) or from any other type - Transformations:
- On all modules, during a conversion (from one type to another) apply custom transformations. e.g: convert field names from camelCase into snake_case, decide Timestamp formats or numerical precisions
Available conversions:
| From / To | Scala Types | BigQuery | Spark | Cassandra | Circe (JSON) | |
|---|---|---|---|---|---|---|
| Scala | ![]() | - | ✅ | ✅ | ✅ | |
| BigQuery | ![]() | - | ✅ | ✅ | ||
| Spark | ![]() | ✅ | - | ✅ | ||
| Cassandra | ![]() | ✅ | ✅ | - | ||
| Circe (JSON) | ![]() | ✅ | ✅ | ✅ |




