关闭

spark2 dataframe map报错

标签: spark
140人阅读 评论(0) 收藏 举报
分类:

在spark2中使用dataframe的map操作时候报错:

Error:(34, 20) 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.
        mRecord.map(teenager => teenager(0)+"lina").show(false);


这里有两种解决办法:

第一种:

        val spark = SparkSession.builder
        .master("local[4]")
        .appName("test1")
        .getOrCreate();
	import spark.implicits._
在要使用map的语句前面加上:

import spark.implicits._


第二种:

// No pre-defined encoders for Dataset[Map[K,V]], define explicitly
implicit val mapEncoder = org.apache.spark.sql.Encoders.kryo[Map[String, Any]]
// Primitive types and case classes can be also defined as
// implicit val stringIntMapEncoder: Encoder[Map[String, Any]] = ExpressionEncoder()

// row.getValuesMap[T] retrieves multiple columns at once into a Map[String, T]
teenagersDF.map(teenager => teenager.getValuesMap[Any](List("name", "age"))).collect()
// Array(Map("name" -> "Justin", "age" -> 19))

参照官方做法,自己注册一个encoder。一般是第一种方法中没有你要用的encoder的时候才自己注册。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决

随着新版本的spark已经逐渐稳定,最近拟将原有框架升级到spark 2.0。还是比较兴奋的,特别是SQL的速度真的快了许多。。   然而,在其中一个操作时却卡住了。主要是dataframe.ma...
  • sparkexpert
  • sparkexpert
  • 2016-10-20 12:17
  • 5945

解决 Error:Unable to find encoder for type stored in a Dataset

Error: Unable to find encoder for type stored in a Dataset.  Primitive types (Int, String, etc) and ...
  • ZMC921
  • ZMC921
  • 2017-08-10 14:58
  • 765

Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决

Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.问题的分析与解决 标签: ...
  • HFUTLXM
  • HFUTLXM
  • 2017-07-27 20:22
  • 680

Spark之中map与flatMap的区别

map()是将函数用于RDD中的每个元素,将返回值构成新的RDD。 flatmap()是将函数应用于RDD中的每个元素,将返回的迭代器的所有内容构成新的RDD,这样就得到了一个由各列表中的元素组成的...
  • u013063153
  • u013063153
  • 2016-11-23 13:31
  • 5420

Spark DataFrame简述和遇到的问题

之前在写Spark Driver程序的时候,因为使用的DataFrame来进行的相关操作,所以今天就总结一下用到的一些东西,同时也分享一下自己遇到的一些问题,让新人能够快速的解决相关的问题.虽然最新的...
  • leishenop
  • leishenop
  • 2016-08-02 22:08
  • 1864

spark DataFrame用法

最近用spark处理过一阵子日志,都是一些零零散散的临时需求,作为一个程序员,饱受查询之苦。在这个使用过程中,也渐渐对spark dataframe的使用摸索出了一些门道。 读写 与RDD的转...
  • dreamer2020
  • dreamer2020
  • 2016-04-30 22:49
  • 12640

变幻莫测的python(一)---基本数据类型

1.变量 变量是一个内存标签,可以通过id(v)来查看内存地址 两个变量可以有相同的内存地址,因为引用同一地址 2.运算符    赋值运算符:=,+=,-=,*=,/=,%=    ...
  • Senssic
  • Senssic
  • 2014-04-05 23:31
  • 1909

Caffe 的可视化 (五)Caffe 中绘制 accuracy 和 loss 曲线

Caffe 中 accuracy 和 loss 曲线的可视化
  • sushiqian
  • sushiqian
  • 2017-11-21 21:29
  • 41

Kotlin入门基础笔记

自从Google将kotlin集成到AS后,kotlin就火起来了,我就跟上潮流大概看了下kotlin,觉得kotlin的语法有点乱,就没看下去了,也以为不会用到kotlin,谁知道最近的项目要用到k...
  • dangnianmingyue_gg
  • dangnianmingyue_gg
  • 2017-06-27 09:12
  • 230

numpy判断数值类型、过滤出数值型数据

numpy是无法直接判断出由数值与字符混合组成的数组中的数值型数据的,因为由数值类型和字符类型组成的numpy数组已经不是数值类型的数组了,而是dtype=' 1、math.isnan也不行,它只能...
  • o1101574955
  • o1101574955
  • 2016-06-17 12:21
  • 5810
    个人资料
    • 访问:9103次
    • 积分:327
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论