Verwenden von Multithreading in Polars Expression -PluginsPython

Python-Programme
Anonymous
 Verwenden von Multithreading in Polars Expression -Plugins

Post by Anonymous »

Update:
Siehe diesen Beitrag, wo die Streaming -Engine verwendet wird:
Wie stelle ich sicher, dass ein Polars -Expression -Plugin mehrere CPUs verwendet? (https://docs.pola.rs/user-guide/plugins/expr_plugins/) für einige Berechnungen berechnen. Ich konnte einen großen und praktischen Wert darauf erkennen, dass sie multi-threades gemacht wurden (vor allem, weil sie Elemente betreiben, d. H. Zeilen sind unabhängig). Wenn Sie es parallel wollen, müssen Sie das selbst implementieren, aber dann riskieren Sie schlechte Interaktionen mit der Multithreading von Polars

Wissen Sie, ob es eine intelligente/empfohlene Möglichkeit gibt, dies zu tun? Könnte man den gleichen Thread -Pool (oder ähnlich) verwenden, wie Polar verwendet wird, um hungernde Ressourcen zu vermeiden? Könnten Sie ein Beispiel dafür angeben, wie man den Code im folgenden Beispiel ändern kann, um dies zu erreichen?

Code: Select all

// src/expressions.rs
use polars::prelude::*;
use pyo3_polars::derive::polars_expr;
use std::fmt::Write;

fn pig_latin_str(value: &str, output: &mut String) {
if let Some(first_char) = value.chars().next() {
write!(output, "{}{}ay", &value[1..], first_char).unwrap()
}
}

#[polars_expr(output_type=String)]
fn pig_latinnify(inputs: &[Series]) -> PolarsResult {
let ca = inputs[0].str()?;
let out: StringChunked = ca.apply_into_string_amortized(pig_latin_str);
Ok(out.into_series())
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post