Укажите T как беззнаковое число в общей функции [duplicate]

Вот как вы можете сделать индивидуальное именование

import pyspark
from pyspark.sql import functions as sf
sc = pyspark.SparkContext()
sqlc = pyspark.SQLContext(sc)
df = sqlc.createDataFrame([('row11','row12'), ('row21','row22')], ['colname1', 'colname2'])
df.show()

, [// g1]

+--------+--------+
|colname1|colname2|
+--------+--------+
|   row11|   row12|
|   row21|   row22|
+--------+--------+

создать новый столбец путем конкатенации:

df = df.withColumn('joined_column', 
                    sf.concat(sf.col('colname1'),sf.lit('_'), sf.col('colname2')))
df.show()

+--------+--------+-------------+
|colname1|colname2|joined_column|
+--------+--------+-------------+
|   row11|   row12|  row11_row12|
|   row21|   row22|  row21_row22|
+--------+--------+-------------+
4
задан Shepmaster 18 May 2016 в 12:51
поделиться

1 ответ

Вы можете использовать ящики num или num-traits и связать свой общий тип функции с num::Float , num::Integer или любой другой признак:

extern crate num;

use num::Float;

fn main() {
    let f1: f32 = 2.0;
    let f2: f64 = 3.0;
    let i1: i32 = 3;

    println!("{:?}", sqrt(f1));
    println!("{:?}", sqrt(f2));
    println!("{:?}", sqrt(i1)); // error
}

fn sqrt<T: Float>(input: T) -> T {
    input.sqrt()
}
4
ответ дан Shepmaster 27 August 2018 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: