/ / Прилагане на трансформации на Dataset Apache Spark - java, apache-spark, spark-dataframe

Прилагане на трансформации на. Пакета Apache Spark - java, apache - spark, spark - dataframe

Аз се занимавам с Dataset<Row>в Apache Spark използвайки Java и трябва да направите aняколко математически трансформации върху всички колони в този набор от данни. По същество една от трансформациите е да се получи дневника на всички стойности, съхранени в този набор от данни, и все още да се връщат Dataset<Row>, Виждам ясно как да го направя в а map функция в RDD, но как мога да направя това в Dataset<Row>?

Контекст: Dataset<Row> old съдържа 2 колони a и b, Искам да върна нов Dataset<Row> new с двете колони a = log(a) и b = log(b)

Отговори:

1 за отговор № 1

това, което можете да направите, е, че можете да създадете метод, който взема стойност от тип a [колона] и b [колона] като параметър и да върнете стойността на регистрационния файл.

предполагаме, че колона a и колона b са от тип дълъг

public long getLog(long value){
// yourlogic to generate log
}

след това приложете функцията на картата върху набора от данни. Под функция на картата ще получите стойност като тип Row приложимото getLong/getAs() метод за получаване на съответната стойност, след това предавайте тази стойност на вашия персонализиран метод за изчисляване на дневника, т.е. getLog в нашия случай връщаме получената стойност.

може да се наложи да се върнете Tuple2 както за стойностите a и b колона

Или можете да създадете udf потребител дефинира функцията на spqrk sql след това се прилага withcoumn метод, който да се приложи udf

ЗАБЕЛЕЖКА udf ще приеме стойността на тип a [column] и b [column] като аргумент и ще върне стойността на регистрационния файл.

Надявам се, че това е добре