Skip to main content
op.LocalDataset is the fastest way to get local data into OuterProduct. Build one from a CSV or Parquet file (or an in-memory frame), then call .upload() to stage it through a presigned URL and get back a Dataset you can pass directly to training or inference. It is completely stateless. There is no credential to configure in the Console.

Supported formats

Build a LocalDataset from a local CSV or Parquet file (from_csv / from_parquet), or directly from an in-memory frame or array — pandas (from_pandas), polars (from_polars), or numpy (from_numpy). Whatever the source, .upload() serializes the rows to Parquet and stages them through the presigned URL.

Upload a file and train a model

1

Build a LocalDataset

Create a LocalDataset from your file with from_csv (or from_parquet).
import outerproduct as op

local = op.LocalDataset.from_csv("customers.csv")
2

Upload it

Call .upload() to stage the rows. OuterProduct uploads them via a presigned URL and returns a Dataset.
dataset = local.upload()
3

Train a model

Pass the Dataset to op.reasoning.fit() along with your label column and task type, then call .wait() to block until training completes.
model = op.reasoning.fit(dataset, task=op.Binclass(label_column="churn")).wait()

Complete example

import outerproduct as op

dataset = op.LocalDataset.from_csv("customers.csv").upload()

model = op.reasoning.fit(dataset, task=op.Binclass(label_column="churn")).wait()
Use a Parquet file instead of CSV when your dataset is large. Parquet files are compressed and columnar, so they upload faster and consume less bandwidth.

Other connectors

If your data lives in a cloud data store rather than on your local machine, use one of the cloud connectors instead: