Mysql
 sql >> база данни >  >> RDS >> Mysql

Rust:Прочетете рамка с данни в поляри от mysql

Същият отговор като в този въпрос , изглежда доста дубликат IMO.

Можете да използвате конструкторите за това или да събирате от итератори. Събирането от итератори често е бързо, но в този случай изисква да направите цикъл на Vec<Country> два пъти, така че трябва да направите сравнителен анализ.

По-долу е примерна функция и за двете показани решения.

use polars::prelude::*;

struct Country {
    country: String,
    count: i64,
}

fn example_1(values: &[Country]) -> (Series, Series) {
    let ca_country: Utf8Chunked = values.iter().map(|v| &*v.country).collect();
    let ca_count: NoNull<Int64Chunked> = values.iter().map(|v| v.count).collect();
    let mut s_country: Series = ca_country.into();
    let mut s_count: Series = ca_count.into_inner().into();
    s_country.rename("country");
    s_count.rename("country");
    (s_count, s_country)
}

fn example_2(values: &[Country]) -> (Series, Series) {
    let mut country_builder = Utf8ChunkedBuilder::new("country", values.len(), values.len() * 5);
    let mut count_builder = PrimitiveChunkedBuilder::<Int64Type>::new("count", values.len());

    values.iter().for_each(|v| {
        country_builder.append_value(&v.country);
        count_builder.append_value(v.count)
    });

    (
        count_builder.finish().into(),
        country_builder.finish().into(),
    )
}

След като получите Series , можете да използвате DataFrame::new(columns) където columns: Vec<Series> за създаване на DataFrame .

Между другото, ако искате максимална производителност, наистина препоръчвам connector-x . Има интеграция на поляри и стрелки и има невероятна производителност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sequelize чете дата и час само в UTC

  2. Условен агрегат с клауза Group By

  3. Създаване на mysql таблица директно от CSV файл с помощта на CSV Storage двигателя?

  4. jquery replacewith за получаване на данни с Ajax след щракване върху клетка

  5. EF:Неправилно използване на пространствен/пълен текст/хеш индекс и изричен ред на индекси