2016-10-11 2 views
8

Использование Spark 2.0, я вижу, что можно превратить dataframe строки в dataframe классов case. Когда я пытаюсь это сделать, я приветствовал сообщение о том, чтобы импортировать spark.implicits._. Проблема, которая у меня есть, заключается в том, что Intellij не признает, что в качестве действительного оператора импорта Im задается вопросом, было ли это перемещено, а сообщение не обновлено или если у меня нет правильных пакетов в моих настройках сборки, здесь это мой build.sbtSpark 2.0 missing spark implicits

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" 
) 

ответ

26

Там нет пакета под названием spark.implicits.

С spark здесь он относится к SparkSession. Если вы находитесь внутри РЕПЛ сессии уже определена как spark, так что вы можете просто ввести:

import spark.implicits._ 

Если вы определили свой собственный SparkSession где-то в вашем коде, а затем настроить его соответствующим образом:

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._ 
3

Spark использовал идентификатор spark для SparkSession. Это и вызывает путаницу. Если вы создали его с чем-то вроде,

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

Правильный путь импорта implicits бы,

import ss.implicits._ 

Позвольте мне знать, если это помогает. Приветствия.

+0

Как я могу преобразовать свой RDD в DadaFrame без 'import spark.implicits._'? Мне нужно что-то вроде метода '.toDF', но без' spark.implicits' –

+1

, если у вас есть Rdd [row], вы можете сделать spark.createDataFrame (rdd) –

Смежные вопросы