{"id":20408722,"url":"https://github.com/feast-dev/feast-spark","last_synced_at":"2025-04-12T15:35:48.049Z","repository":{"id":37383163,"uuid":"329794084","full_name":"feast-dev/feast-spark","owner":"feast-dev","description":null,"archived":false,"fork":false,"pushed_at":"2022-07-08T02:51:05.000Z","size":606,"stargazers_count":30,"open_issues_count":9,"forks_count":24,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T10:11:17.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feast-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-15T03:01:59.000Z","updated_at":"2023-11-20T14:54:01.000Z","dependencies_parsed_at":"2022-07-08T07:39:59.421Z","dependency_job_id":null,"html_url":"https://github.com/feast-dev/feast-spark","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast-dev%2Ffeast-spark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast-dev%2Ffeast-spark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast-dev%2Ffeast-spark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feast-dev%2Ffeast-spark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feast-dev","download_url":"https://codeload.github.com/feast-dev/feast-spark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248244971,"owners_count":21071379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T05:35:52.135Z","updated_at":"2025-04-12T15:35:48.024Z","avatar_url":"https://github.com/feast-dev.png","language":"Python","readme":"# Feast Spark\n\nContains\n* Spark ingestion jobs for [Feast](https://github.com/feast-dev/feast) versions 0.9 and below\n* Feast Job Service\n* Feast Python SDK Spark extensions \n\nUsage:\n\n```python\n\nimport feast_spark\nimport feast\n\nclient = feast.Client()\n\nclient.set_project(\"project1\")\nentity = feast.Entity(\n    name=\"driver_car_id\",\n    description=\"Car driver id\",\n    value_type=ValueType.STRING,\n    labels={\"team\": \"matchmaking\"},\n)\n\n# Create Feature Tables using Feast SDK\nbatch_source = feast.FileSource(\n    file_format=ParquetFormat(),\n    file_url=\"file://feast/*\",\n    event_timestamp_column=\"ts_col\",\n    created_timestamp_column=\"timestamp\",\n    date_partition_column=\"date_partition_col\",\n)\n\nstream_source = feast.KafkaSource(\n    bootstrap_servers=\"localhost:9094\",\n    message_format=ProtoFormat(\"class.path\"),\n    topic=\"test_topic\",\n    event_timestamp_column=\"ts_col\",\n)\n\nft = feast.FeatureTable(\n    name=\"my-feature-table-1\",\n    features=[\n        Feature(name=\"fs1-my-feature-1\", dtype=ValueType.INT64),\n        Feature(name=\"fs1-my-feature-2\", dtype=ValueType.STRING),\n        Feature(name=\"fs1-my-feature-3\", dtype=ValueType.STRING_LIST),\n        Feature(name=\"fs1-my-feature-4\", dtype=ValueType.BYTES_LIST),\n    ],\n    entities=[\"fs1-my-entity-1\"],\n    labels={\"team\": \"matchmaking\"},\n    batch_source=batch_source,\n    stream_source=stream_source,\n)\n\n# Register objects in Feast\nclient.apply(entity, ft)\n\n# Start spark streaming ingestion job that reads from kafka and writes to the online store\nfeast_spark.Client(client).start_stream_to_online_ingestion(ft)\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeast-dev%2Ffeast-spark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeast-dev%2Ffeast-spark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeast-dev%2Ffeast-spark/lists"}