spark2 dataframe map报错

标签: spark
269人阅读 评论(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的时候才自己注册。

查看评论

【曾贤志】Power Map For Excel地图图表视频教程

通过对POWER MAP的学习,可以制作跟地址相关的地图图表。让你的图表更专业、更形象。
  • 2015年05月07日 14:17

spark DataFrame用法

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

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:13
  • 7636

Spark RDD/DataFrame map保存数据的两种方式

使用Spark RDD或DataFrame,有时需要在foreachPartition或foreachWith里面保存数据到本地或HDFS。直接保存数据当然如果不需要在map里面保存数据,那么针对RD...
  • aWDac
  • aWDac
  • 2017-10-06 11:55:15
  • 1409

Spark DataFrame简述和遇到的问题

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

解决 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:42
  • 1513

Spark 2.0 DataFrame map操作中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...
  • zhouchaochen
  • zhouchaochen
  • 2017-09-27 18:05:55
  • 506

spark RDD算子(二) filter,map ,flatMap

spark算子二 filter,map ,flatMap 实战入门,spark2.0 和 spark1.6中的flatMap区别 iterator
  • T1DMzks
  • T1DMzks
  • 2017-04-16 21:34:30
  • 8031

Spark之中map与flatMap的区别

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

进一步理解DataFrame, Dataset, RDD

Dataset类似于RDD+schema 如下代码创建一个Dataset:scala> import spark.implicits._ import spark.implicits._scala>...
  • bluejoe2000
  • bluejoe2000
  • 2017-09-04 20:35:00
  • 554
    个人资料
    等级:
    访问量: 1万+
    积分: 447
    排名: 11万+
    最新评论