2017-06-27 34 views
0

我试图将数据帧加载到Hive表中。找不到类型为org.apache.spark.sql.Encoder的证据参数的隐式值[String]

import org.apache.spark.sql.SparkSession 
import org.apache.spark.sql.SaveMode 
import org.apache.spark.sql._ 

object SparkToHive { 
    def main(args: Array[String]) { 
    val warehouseLocation = "file:${system:user.dir}/spark-warehouse" 
    val sparkSession = SparkSession.builder.master("local[2]").appName("Saving data into HiveTable using Spark") 
         .enableHiveSupport() 
         .config("hive.exec.dynamic.partition", "true") 
         .config("hive.exec.dynamic.partition.mode", "nonstrict") 
         .config("hive.metastore.warehouse.dir", "/user/hive/warehouse") 
         .config("spark.sql.warehouse.dir", warehouseLocation) 
         .getOrCreate() 
    **import sparkSession.implicits._** 
    val partfile = sparkSession.read.text("partfile").as[String] 

    val partdata = partfile.map(part => part.split(",")) 
    case class Partclass(id:Int, name:String, salary:Int, dept:String, location:String) 
    val partRDD = partdata.map(line => PartClass(line(0).toInt, line(1), line(2).toInt, line(3), line(4))) 
    val partDF = partRDD.toDF() 
    partDF.write.mode(SaveMode.Append).insertInto("parttab") 
    } 
} 

我还没有执行该文件,不过我在这行得到以下错误:

import sparkSession.implicits._ 
could not find implicit value for evidence parameter of type org.apache.spark.sql.Encoder[String] 

我该如何解决这个问题?

+0

适合我在Spark 2.1中移动case类后主要方法 –

回答

2

我犯的错误是

  1. 案例类应该是外面的主对象

  2. 在这一行内:val partfile = sparkSession.read.text("partfile").as[String],我用read.text("..")得到一个文件分成我们可以使用的火花read.textFile("...")

+0

好极了。我很高兴能帮你解决问题:) –

1

请将您的caseclassPartclass以外的SparkToHive对象。应该没事吧

还有**在你implicits import声明。尝试

import sparkSession.sqlContext.implicits._ 
+0

这样做: case class partc(id:Int,name:String,salary:Int,dept:String,location:String) object SparkToHive {defool main(args: Array [String]){ 。 。 。 。 。 。 。 } } 但仍然收到错误。 – Sidhartha

+0

你有**含有导入声明。试试'import sparkSession.sqlContext.implicits._' –

+0

我试图给他们一个BOLD外观。这就是为什么你看到**。在节目中,我没有任何。 – Sidhartha

相关问题