2017-06-27 32 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

相關問題