Skip to main content

skypoint-python-cdm-connector

Python Spark CDM Connector by SkyPoint.

Apache Spark connector for the Microsoft Azure "Common Data Model". Reading and writing is supported and it is a work in progress. Please file issues for any bugs that you find.

For more information about the Azure Common Data Model, check out this page.

We support Azure Data Lake Service (ADLS) and AWS S3 as storage, historical data preservation using snapshots of the schema & data files and usage within PySpark, Azure Functions etc.

*Upcoming Support for incremental data refresh handling, [CDM 1.1](https://docs.microsoft.com/en-us/common-data-model/cdm-manifest and Google Cloud (Cloud Storage).

Example

  1. Please look into the sample usage file skypoint_python_cdm.py
  2. Dynamically add/remove entities, annotations and attributes
  3. Pass Reader and Writer object for any storage account you like to write/read data to/from.
  4. Check out the below code for basic read and write examples.
# Initialize empty model
m = Model()

# Sample dataframe
df = {"country": ["Brazil", "Russia", "India", "China", "South Africa", "ParaSF"],
       "currentTime": [datetime.now(), datetime.now(), datetime.now(), datetime.now(), datetime.now(), datetime.now()],
       "area": [8.516, 17.10, 3.286, 9.597, 1.221, 2.222],
       "capital": ["Brasilia", "Moscow", "New Dehli", "Beijing", "Pretoria", "ParaSF"],
       "population": [200.4, 143.5, 1252, 1357, 52.98, 12.34] }
df = pd.DataFrame(df)

# Generate entity from the dataframe
entity = Model.generate_entity(df, "customEntity")

# Add generated entity to model
m.add_entity(entity)

# Add model level annotation
# Annotation can be added at entity level as well as attribute level
Model.add_annotation("modelJsonAnnotation", "modelJsonAnnotationValue", m)


# Create an ADLSWriter to write into ADLS
writer = ADLSWriter("ACCOUNT_NAME", "ACCOUNT_KEY",
                     "CONTAINER_NAME", "STORAGE_NAME", "DATAFLOW_NAME")    

# Write data as well as model.json in ADLS storage
m.write_to_storage("customEntity", df, writer)

Contributing

This project welcomes contributions and suggestions.

References

Model.json version1 schema

A clean implementation for Python Objects from/to model.json file

Release files for cdm-connector 0.0.6.70

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cdm-connector 0.0.6.70
File Size Uploaded
cdm-connector-0.0.6.70.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cdm-connector 0.0.6.70
File Interpreter ABI Platform
cdm_connector-0.0.6.70-py3-none-any.whl Python 3 none any Details

Total release size: 42.6 kB

Release files / cdm-connector-0.0.6.70.tar.gz

Download URL cdm-connector-0.0.6.70.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a8a8ab431a6e5a44bf4bef438b13ccc390c91a70d91b75b7dcd490809fda0b19
BLAKE2b-256 checksum
How to use checksums
f96eb4595933644029689cd3cd32e2aab235b23d1de4506bc4a35f02901819aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

Release files / cdm_connector-0.0.6.70-py3-none-any.whl

Download URL cdm_connector-0.0.6.70-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48f7818c39275f747edc248e346c2c46d3e52980e2b1940312d05bb2b3c57e3b
BLAKE2b-256 checksum
How to use checksums
6ebe1b88eb3282e14f1aa7e5dc8b3e82a8b58a446c1e2da5ad7e076979f76c37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.0.6.70 This release

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page