当前位置: 首页 > 知识库问答 >
问题:

“找不到存储在数据集中的类型的编码器”是否导入spark.implicits._?

赖明煦
2023-03-14
Error:(39, 12) Unable to find encoder for type stored in a Dataset.  Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._  Support for serializing other types will be added in future releases.
    dbo.map((r) => ods.map((s) => {

Error:(39, 12) not enough arguments for method map: (implicit evidence$6: org.apache.spark.sql.Encoder[org.apache.spark.sql.Dataset[Int]])org.apache.spark.sql.Dataset[org.apache.spark.sql.Dataset[Int]].
Unspecified value parameter evidence$6.
    dbo.map((r) => ods.map((s) => {
object Main extends App {
  ....

  def compare(sqlContext: org.apache.spark.sql.SQLContext, 
            dbo: Dataset[Cols], ods: Dataset[Cols]) = {
    import sqlContext.implicits._ // Tried import dbo.sparkSession.implicits._ too
    dbo.map((r) => ods.map((s) => { // Errors occur here
      0
    }))
}

case class Cols (A: Int,
                   B: String,
                   C: String,
                   D: String,
                   E: Double,
                   F: Date,
                   G: String,
                   H: String,
                   I: Double,
                   J: String
                  )

>

  • 导入sqlcontext.implicits._后,为什么它仍然有错误?
  • 我创建参数sqlcontext仅用于导入。有没有更好的方法在不传递参数的情况下完成它?

    应通过导入dbo.sparksession.implicits._解决此问题

  • 共有1个答案

    常智勇
    2023-03-14

    您的代码试图创建一个数据集[dataset[Int]],这是错误的,原因有几个

    不能在一个数据集中使用数据集,如果要交叉来自两个数据集的数据,则需要以某种方式将它们连接起来

    没有办法创建编码器[dataset[Int]],您可以创建编码器[Int],但其他东西没有意义

    这样做更有意义

    import org.apache.spark.sql.functions => func
    
    dbo.joinWith(ods, func.expr("true")).map {
      case (r, s) =>
        0
    }
    
     类似资料:
    • 问题内容: 我想为我正在执行的映射操作在DataSet中为Row类型编写一个编码器。本质上,我不了解如何编写编码器。 以下是地图操作的示例: 我知道,编码器需要编写如下字符串,而不是字符串: 但是,我不了解编码器中的clsTag(),并且我试图找到一个可以演示类似内容的运行示例(即,用于行类型的编码器) 编辑- 这不是所提问题的副本:尝试将数据框行映射到更新行时出现编码器错误,因为答案涉及在Spa

    • 问题内容: 我们有一个MySQL InnoDB表,其中包含约10列由base64编码的小型javascript文件和由base64编码的png(小于2KB大小)图像。 插入的次数很少,但读取次数却很多,但是输出会在Memcached实例上缓存几分钟,以避免后续的读取。 现在,我们正在使用这些列,但是我想知道在性能或快照备份方面切换到数据类型是否有优势。 我的搜索挖掘表明,和我的情况接近相同的,因为

    • 我试图实现一个自定义Spring存储库。我有接口: 实施: 和“主”存储库,扩展我的自定义存储库: 我使用的是Spring Boot,根据文档: 默认情况下,Spring Boot将启用JPA存储库支持,并查看@SpringBootApplication所在的包(及其子包)。 当我运行应用程序时,出现以下错误: 组织。springframework。数据映射。PropertyReferenceEx

    • 我正在尝试在Spring应用程序中设置第二个数据源。以下是两个数据源的两个配置类: 第二个配置类: 我在com上看到过。XYXYale。坚持不懈XY a Spring数据JPA回购协议定义如下 德莫雷波 人口学 DemoRepoImpl 回购协议的使用方式如下: 我得到一个例外: 有人对如何解决这个问题有建议吗?我可以想到为每个回购注入正确的实体经理,但是我不知道如何做到这一点。 提前感谢。在这里

    • 我有一个小的webservice程序,在其中我需要从外部JAR导入JSONObject。在尝试部署webservice时,Glassfish找不到导入的类(从外部jar),但在IDE中看起来很好。 [2017-11-17T16:22:49.429+0100][glassfish 4.1][警告][][javax.enterprise.web][tid:_threadid=30_threadname