VOID 001
11/19/2025, 8:30 AMGarrett Weaver
11/20/2025, 9:11 PMmode (most common value) to aggregations?Garrett Weaver
11/22/2025, 12:17 AM__init__
2. load the model from mlflow in my main script and pass as an argument like below
@daft.cls
class ModelPredictor:
"""Model predictor for Daft DataFrames."""
def __init__(self, model: lgb.Booster, train_config: TrainConfig) -> None:
self.model = copy.deepcopy(model)
self.train_config = train_configPhil Chen
11/29/2025, 7:23 PMSlackbot
12/05/2025, 6:36 PMNavneeth Krishnan
12/11/2025, 2:30 PMEverett Kleven
12/12/2025, 6:49 PMAarjav Patni
12/18/2025, 2:04 AMAarjav Patni
12/18/2025, 2:04 AMGarrett Weaver
12/19/2025, 6:00 PMdaft.cls, but seeing the following error (๐งต), any ideas?Garrett Weaver
02/19/2026, 12:25 AM0.6.14, looks like the concat at micropartition level not usage of concat by me right (I am not using it fwiw)? Will share query plan
File "/tmp/ray/session_2026-01-08_20-44-16_741313_1/runtime_resources/pip/4858717c93c532512d70d85304fc18c2c24c6c55/virtualenv/lib/python3.12/site-packages/daft/recordbatch/micropartition.py", line 135, in concat
return MicroPartition._from_pymicropartition(_PyMicroPartition.concat(micropartitions))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
daft.exceptions.DaftCoreException: DaftError::SchemaMismatch MicroPartition concat requires all schemas to match, โญโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฎ
โ column_name โ type โ
โโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโก
โ __store_cluster_id_l โ String โ
โฐโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโฏ
vs โญโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฎ
โ column_name โ type โ
โโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโก
โ __store_cluster_id_r โ String โ
โฐโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโฏEverett Kleven
02/23/2026, 7:43 PMGarrett Weaver
03/09/2026, 9:45 PM2.35.0 to 2.53.0. We are using autoscaling clusters. One thing I am noticing is that the ray cluster is not scaling to the same number of workers after changing, leading to longer runtime. There is more work that could be done by scaling up, but seems like daft doesn't know this? Any way I could get it scale up more workers through some configuration or partitioning upfront? Trying to avoid manual scale up/down.Garrett Weaver
03/11/2026, 10:04 PMAbner Ayala
03/13/2026, 6:42 PMAbner Ayala
03/23/2026, 8:09 PMdaft.download has parameter on_error. Do we have a similar way to this for daft.File I wanted to use daft.File for some custom decoding of some text files but there is no guarantee that the s3 file exists. So i want to use daft.File(on_error=null) but don't seem to have this functionallity?Garrett Weaver
04/03/2026, 8:57 PM0.7.5 and running into an error reading an parquet file with no data (I cannot get this to replicate on mac only happening when I run in argo workflows)Everett Kleven
04/07/2026, 7:02 PMBruno Alano
04/15/2026, 1:50 PMNavneeth Krishnan
04/19/2026, 6:13 AMGarrett Weaver
04/22/2026, 11:05 PMdaft.func.batch, is it fair to say that if the batch version is just a list comprehension, it is not worth it and should just stick with daft.func?Mehul Batra
04/23/2026, 7:32 PMPOC scope:- Multimodal pipelines (unstructured data + image/video + Audio) for AI workloads โ embedding generation + inference - Heterogeneous compute: CPU for I/O and preprocessing, GPU for model inference - Reads/writes against object storage/vectordb (Parquet/Iceberg/raw files) - Distributed UDFs (including GPU-bound ones) at scale - Autoscaling behavior under bursty workloads
What I'm looking for:1. Is there a recommended cookbook / reference setup for standing up a distributed Daft cluster (Ray-based I assume)? Any opinionated deployment guides for K8s? 2. Best practices for mixed CPU/GPU worker pools: resource tagging, fractional GPU allocation per UDF, scheduling hints. 3. Patterns for embedding + inference pipelines: batching, model loading per worker, keeping GPUs saturated. 4. Autoscaling story: what works today (KubeRay autoscaler?), known gotchas. 5. Recommended read/write connectors for multimodal data at scale (images/video blobs + metadata). 6. Any PoC templates, example notebooks, or reference architectures the team points users to first. Thanks in advance!
Abner Ayala
05/12/2026, 8:56 PMpreprocessed_image (gets deleted after inference) just creates too many numpy tensors that the model cannot consume fast enough.
2. I also have switch from using daft.func for preprocessing to using daft.cls in order to always make the max_concurrency of the preprocessing be bounded to 2 * num_gpus.
a. All my preprocessing are now using daft.cls with max_concurrency=num_gpus *2
b. It's my hacky way to control the queue size between preprocessing -> inference from exploding.
c. this is somewhat equivalent to prefetct_factor=2 in Pytorch Dataloaders.
3. For very big models that have slow images per second I am also having to throttle the max_connection of daft download function
a. why? to again ensure queue size between download + decode -> preprocess_udf does not explode.
That's 3 knobs I'm having to control differently per each model or pipeline in order from not having one step in the pipeline producing a queue too large for the next step. Which makes me wonder is there is a better solution for this or if we could have more control of the queue size or not slow down one steps if it's to fast for the next one?
Some possible solution:
The max_in_flight or queue_size can just be a parameter for all native or user-defined daft.func and daft.cls.
df = df.with_column("image_bytes", df["image_url"].url.download()).max_in_flight(64)
df = df.with_column("image", df["image_bytes"].decode_image()).max_in_flight(32)
df = df.with_column("preprocessed_image", preprocessing_udf(col("image"))).max_in_flight(16)
df = df.select("*", inference_udf(...)).max_in_flight(8)
The queue numbers are number of batches not number of rows.
[download]โโ[64]โโ[decode]โโ[32]โโ[preprocess]โโ[16]โโ[infer]โโ[8]โโ[write]
โ โ โ โ
image_bytes image preprocessed_image predictions
rows queued rows queued rows queued rows queued
Let me know what you guys think, hopefully this helps.Garrett Weaver
05/18/2026, 8:44 PMNavneeth Krishnan
05/19/2026, 7:17 PMGarrett Weaver
05/28/2026, 4:28 AMray runner + auto shuffle and ray runner + flight shuffleDesmond Cheong
05/30/2026, 8:02 PMGarrett Weaver
06/03/2026, 12:08 AMRuntimeError: Failed to get IP addresses for actors within 120 seconds, despite setting this config daft.set_execution_config(parquet_inflation_factor=15, worker_startup_timeout=900)Garrett Weaver
06/17/2026, 5:27 PMNavneeth Krishnan
06/26/2026, 3:55 PM