LogoLogo
Home PageLoginSQL Generator
  • 🖥️What is Rasgo?
  • 🚀Setting Up Rasgo
    • Connect Rasgo to your Data
  • 🛠️Using Rasgo
    • Modeling your Data
    • Prompt Guide
    • AI Notes
    • AI-Generated Documentation
    • AI Readiness Score
    • Reports
    • Additional Features
    • Admin Settings
  • 🎉What's New
  • Integrations
    • ❄️Snowflake
    • 🔍BigQuery
    • 🔴Redshift
    • 🧱DeltaLake (via Databricks)
    • 💬OpenAI
    • 🅰️Anthropic
    • ✨Gemini
    • ☁️dbt Cloud
  • 🔐API
    • Table Metadata
    • Column Metadata
  • Reference
    • Status Page
    • Frequently Asked Questions
      • Rasgo Architecture
      • Contacting Rasgo Support
      • What does Rasgo do with my data?
  • Rasgo Graveyard
    • PyRasgo 0.3
      • Source Methods
        • publish.source_data()
        • read.source_data()
        • get.data_sources()
        • get.data_source()
      • Feature Methods
        • feature.get_stats()
        • publish.features_from_source_code()
        • publish.feature_from_source()
        • publish.features()
        • read.feature_data()
        • get.feature_attributes()
        • get.features()
        • get.feature()
      • Collection Methods
        • collection.add_attributes()
        • collection.preview()
        • collection.get_compatible_features()
        • read.collection_snapshot_data()
        • read.collection_data()
        • get.collection_attributes()
        • get.collections()
        • get.collection()
      • Features yml file
      • version 0.3
    • Transforms Overview
      • Build your Own Transform
        • Argument Types
        • Make your own Transform
        • SQL Best Practices
        • Utilities
          • cleanse_name()
    • All Transforms
      • Aggregate String
      • Aggregate
      • Apply
      • Bin
      • Cast
      • Clean
      • Conditional Agg
      • Correlation
      • Cumulative Agg
      • Datarobot Score
      • Dateadd
      • Datediff
      • Datepart
      • Datespine Groups
      • Datespine
      • Datetrunc
      • Describe
      • Drop Columns
      • Dropna
      • Encode Values
      • Entropy
      • Extract Sequences
      • Filter
      • Funnel
      • Heatmap
      • Histogram
      • If Then
      • Join
      • Joins
      • Label Encode
      • Lag
      • Latest
      • Lead
      • Linear Regression
      • Market Basket
      • Math
      • Metric Plot
      • Metric
      • Min Max Scaler
      • Moving Avg
      • New Columns
      • One Hot Encode
      • Order
      • Pivot Table
      • Plot
      • Prefix
      • Profile Column
      • Query
      • Rank
      • Ratio With Shrinkage
      • Remove Duplicates
      • Remove Outliers
      • Rename
      • Replace Missing
      • Replace String
      • Reshape
      • Rolling Agg
      • Rsi
      • Sample Class
      • Sample
      • Sankey
      • Scale Columns
      • Select
      • Sliding Slope
      • Standard Scaler
      • Suffix
      • Summarize Flatlines
      • Summarize Islands
      • Summarize
      • Target Encode
      • Text To Sql
      • Timeseries Agg
      • To Date
      • Train Test Split
      • Union
      • Unions
      • Unpivot
      • Uppercase Columns
      • Vlookup
Powered by GitBook
On this page
  • Parameters
  • Return Object
  • Sample Usage
  • Best Practices / Tips

Was this helpful?

  1. Rasgo Graveyard
  2. PyRasgo 0.3
  3. Feature Methods

publish.features()

Creates Rasgo Features from a dict

Previouspublish.feature_from_source()Nextread.feature_data()

Last updated 3 years ago

Was this helpful?

Parameters

features_dict:dict: to publish as Rasgo Features

{ "sourceTable": "mandatory DB.SCHEMA.TABLE where features are", "features": [ { "columnName": "mandatory_field_name_in_table", "displayName": "Optional Pretty Name", "dataType": "mandatory sql type", "description": "optional display text", "tags": [ "optional", "list of strings", "apply only to this feature" ], "attributes": [ { "key": "value"}, {"optional": "apply only to this features" } ] } ], "dimensions": [ { "columnName": "mandatory_field_name_in_table", "displayName": "Optional Pretty Name", "dataType": "mandatory sql type", "granularity": "mandatory noun ..." } ], "status": "Production | Sandbox", "tags": [ "optional", "list of strings", "apply to all features" ], "attributes": [ {"key": "value"}, {"optional": "apply to all features"} ], "script": "OptionalFile.py", "gitRepo": "Optional" }

Return Object

Sample Usage

Create new features from a dict

	features_dict = rasgo.prepare_feature_set_dict(600)
    print('My Dict:', features_dict)
	
	features_dict = {
        'sourceTable': 'pandas_by_DATE_YEAR_2021_02_05_00_42', 
        'features': [
            {
                'columnName': 'NEXT_MONTH', 
                'dataType': 'integer', 
                'displayName': 'PANDAS_NEXT_MONTH_2021_02_05_00_42', 
                'description': 'Feature that contains PANDAS_NEXT_MONTH_2021_02_05_00_42 data',
                'tags': ['test'],
                'attributes': [{'FeatureKey': 'FeatureValue'}]
            },
            {
                'columnName': 'NEXT_MONTH', 
                'dataType': 'integer', 
                'displayName': 'PANDAS_NEXT_MONTH_2021_02_05_00_42', 
                'description': 'Feature that contains PANDAS_NEXT_MONTH_2021_02_05_00_42 data'
            }
            ], 
        'dimensions': [
            {
                'columnName': 'YEAR', 
                'dataType': 'integer', 
                'granularity': 'test'
            }, 
            {
                'columnName': 'DATE', 
                'dataType': 'string', 
                'granularity': 'day'
            }
            ], 
        'tags': ['test', '02/05/2021', 'Pandas'],
        'attributes': [{'Key1': 'Value1'}],
        'status': 'Production'
    }
    features = rasgo.publish.features(features_dict)
    print(features)

Publish changes to an existing feature

feature = rasgo.get_feature(1557)
features_dict = feature.to_dict()
print('My Feature:', features_dict)

# Changes feature values by interacting with dict
# Example: Update Name
feautures_dict["features"][0]["displayName"] = "New Feature Name"

feature = rasgo.publish_features(features_dict)
print(feature)

Publish changes to all features in a FeatureSet

features_dict = rasgo.prepare_feature_set_dict(600)
print('My FeatureSet:', features_dict)


# Changes feature values by interacting with dict
# Example: Add tags to all features
feautures_dict["tags"] = ["new tag", "apply to all features"]

features = rasgo.publish_features(features_dict)
print(features)

Columns in your DataSource table that are not referenced in either the "dimensions" or "features" list will be ignored

Best Practices / Tips

TIP: Feature name warning message

If you receive the error: "APIError: Failed to create Feature {___}. This name is already in use in your organization. Feature names must be unique." this is a sign that a feature already exists with this name.

Options to remedy are:

  • If the existing feature is named correctly and the feature you are trying to upload needs a new name: change the displayName attribute in your dict.

  • If the existing feature is simply an earlier run of this feature, instruct the function to overwrite it by passing in the param if_exists='edit'

  • If the existing feature is named incorrectly, navigate to the WebApp to change that feature's name, then re-upload

Dictionary
Rasgo FeatureSet