web-dev-qa-db-fra.com

Spark 2.0 manquant spark implicite

En utilisant Spark 2.0, je vois qu'il est possible de transformer un cadre de données de ligne en un cadre de données de classes de cas. Lorsque j'essaie de le faire, je suis accueilli avec un message indiquant d'importer spark.implicits._. Le problème que j'ai est qu'Intellij ne reconnaît pas cela comme une déclaration d'importation valide, je me demande si cela a bougé et si le message n'a pas été mis à jour, ou si je n'ai pas les bons packages dans mes paramètres de construction, ici est mon build.sbt

libraryDependencies ++= Seq(
  "org.mongodb.spark" % "mongo-spark-connector_2.11" % "2.0.0-rc0",
  "org.Apache.spark" % "spark-core_2.11" % "2.0.0",
  "org.Apache.spark" % "spark-sql_2.11" % "2.0.0"
)
28
TheM00s3

Il n'y a pas de package appelé spark.implicits.

Avec spark ici, il fait référence à SparkSession . Si vous êtes dans le REPL la session est déjà définie comme spark vous pouvez donc simplement taper:

import spark.implicits._

Si vous avez défini votre propre SparkSession quelque part dans votre code, ajustez-le en conséquence:

val mySpark = SparkSession
  .builder()
  .appName("Spark SQL basic example")
  .config("spark.some.config.option", "some-value")
  .getOrCreate()

// For implicit conversions like converting RDDs to DataFrames
import mySpark.implicits._
68
marios

Spark a utilisé l'identifiant spark pour SparkSession. C'est ce qui cause la confusion. Si vous l'avez créé avec quelque chose comme,

val ss = SparkSession
  .builder()
  .appName("test")
  .master("local[2]")
  .getOrCreate()

La bonne façon d'importer implicits serait,

import ss.implicits._

Faites-moi savoir si cela aide. À votre santé.

7
Chitral Verma