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
- Please look into the sample usage file skypoint_python_cdm.py
- Dynamically add/remove entities, annotations and attributes
- Pass Reader and Writer object for any storage account you like to write/read data to/from.
- 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
A clean implementation for Python Objects from/to model.json file
Metadata
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cdm-connector-0.0.6.70.tar.gz | 17.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for cdm-connector 0.0.6.70
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.