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_from_source_code()

Previousfeature.get_stats()Nextpublish.feature_from_source()

Last updated 3 years ago

Was this helpful?

Parameters

data_source_id:int:ID of a Rasgo DataSource

source_code_type:str:Valid values are "sql" or "python"

sql_definition:str: (Optional)Valid SQL select statement that will be used to make a view in the DataWarehouse. Mandatory param if source_code_type = "sql"

python_function:FunctionType: (Optional)Valid python function that accepts a df as a param and returns a df of features. Mandatory param if source_code_type = "python"

features:List[str]: (Optional)A list of column names in the DataSource table that should be registered as Features. If no value is passed, all columns in the source that are not listed in the `dimensions` parameter will be registered as features.

dimensions:List[str]:A list of column names in the DataSource table that should be registered as Dimensions

granularity:List[str]:A list of strings that describes the grain of the dimensions

feature_set_name:str: (Optional)Name for this set of Features

sandbox:bool: (Optional)True = mark these features are Sandbox (not Production-ready) | False = mark these features are Production-ready (default is True)

if_exists:str: (Optional) fail - returns an error message if a featureset already exists against this table | return - returns the featureset without operating on it | edit - edits the existing featureset | new - creates a new featureset

Return Object

Sample Usage

Create features from an existing source

sql="SELECT DATE, DATEADD(WEEK, 1, DATE) AS WEEKFROMTODAY, (TEMP - 32)/1.8  AS TEMPINCELCIUS FROM MYTABLE"

dimensions = ['DATE']
features = ['WEEKFROMTODAY', 'TEMPINCELCIUS']

featureset = rasgo.publish_features_from_source_code(
               data_source_id=100,
               source_code_type='sql',
               sql_definition=sql,
               dimensions=dimensions, 
               features=features, 
               granularity=['day'],
               name='My Sandbox Features',
               sandbox=True
               )
print('FeatureSet:', featureset)

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 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

If the existing feature is named correctly and the feature you are trying to upload needs a new name: use the method to upload the feature with a different name.

Rasgo FeatureSet
publish.features()