首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到org.apache.spark.sql.Encoder[String]类型的证据参数的隐式值

找不到org.apache.spark.sql.Encoder[String]类型的证据参数的隐式值
EN

Stack Overflow用户
提问于 2017-06-27 14:37:38
回答 2查看 11.8K关注 0票数 2

我正在尝试将数据帧加载到Hive表中。

代码语言:javascript
复制
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")
  }
}

我还没有执行它,但我在这一行得到了以下错误:

代码语言:javascript
复制
import sparkSession.implicits._
could not find implicit value for evidence parameter of type org.apache.spark.sql.Encoder[String]

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-27 21:28:39

我犯的错误是

  1. Case类应该在main之外,在object
  2. 内。在下面这一行中:val partfile = sparkSession.read.text("partfile").as[String],我使用read.text("..")将一个文件放入我们可以使用read.textFile("...")

的Spark中。

票数 1
EN

Stack Overflow用户

发布于 2017-06-27 15:18:52

请将您的case class Partclass移到SparkToHive对象之外。那应该没问题。

你的implicits import语句中有**。试一试

代码语言:javascript
复制
import sparkSession.sqlContext.implicits._
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44773696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档