Je suis nouveau sur Spark 2.0 et j'utilise des ensembles de données dans notre base de code. Je remarque un peu que j'ai besoin de import spark.implicits._
partout dans notre code. Par exemple:Solution de contournement pour importer des implicits d'étincelles partout
File A
class A {
def job(spark: SparkSession) = {
import spark.implcits._
//create dataset ds
val b = new B(spark)
b.doSomething(ds)
doSomething(ds)
}
private def doSomething(ds: Dataset[Foo], spark: SparkSession) = {
import spark.implicits._
ds.map(e => 1)
}
}
File B
class B(spark: SparkSession) {
def doSomething(ds: Dataset[Foo]) = {
import spark.implicits._
ds.map(e => "SomeString")
}
}
Ce que je voulais demander est s'il y a un propre façon de pouvoir faire
ds.map(e => "SomeString")
sans implicits importer dans toutes les fonctions où je fais la carte? Si je le fais, j'importer pas eu l'erreur suivante:
Error:(53, 13) Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.
Mise à jour ma réponse avec quelques informations supplémentaires. N'hésitez pas à demander si vous avez des questions de suivi. – Shaido