Eu tenho o seguinte código Spark no Scala:
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder.master("local").getOrCreate()
import spark.implicits._
val scheme = new StructType()
.add(new StructField("state_id", IntegerType, true))
.add(new StructField("state", StringType, true))
.add(new StructField("recommendation", StringType, true))
val statesDf: DataFrame = spark.read
.format("jdbc")
.schema(scheme)
.option("driver", "org.postgresql.Driver")
.option("url", "jdbc:postgresql://localhost:5432/postgres")
.option("dbtable", "public.states")
.option("user", "postgres")
.option("password", "postgres")
.load()
statesDf.map(r => Row(r.getInt(0) * 2)).show()
}
E recebo o erro próximo à função "mapa":
No implicits found for parameter evidence$6: Encoder[Row]
Eu esperava que "import spark.implicits._" fosse suficiente para evitar esse problema, mas me enganei
A
map
função deve ser usada com conjuntos de dados (digitados).Você poderia usar
ou
Os codificadores implícitos funcionam principalmente para primitivos, suas sequências e tipos de produtos.