Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark 1.6中的数据集_Apache Spark_Apache Spark Sql_Spark Dataframe_Apache Spark Dataset - Fatal编程技术网

Apache spark Spark 1.6中的数据集

Apache spark Spark 1.6中的数据集,apache-spark,apache-spark-sql,spark-dataframe,apache-spark-dataset,Apache Spark,Apache Spark Sql,Spark Dataframe,Apache Spark Dataset,我正在评估将现有RDD代码替换为Dataset。对于我的一个用例,我无法将数据集映射到另一个用例类 这就是我要做的 case class MyMap(map: Map[String, String]) case class V1(a: String, b: String){ def toMyMap: MyMap = { MyMap(Map(a->b)) } def toStr: String = { a } } object MyApp extends

我正在评估将现有RDD代码替换为Dataset。对于我的一个用例,我无法将数据集映射到另一个用例类

这就是我要做的

case class MyMap(map: Map[String, String])

case class V1(a: String, b: String){
  def toMyMap: MyMap = {
    MyMap(Map(a->b))
  }

  def toStr: String = {
    a
  }
}

object MyApp extends App {
//Get handle to sqlContext and other useful stuff here.
val df1 = sqlContext.createDataset(Seq(V1("2015-05-01", "data1"), V1("2015-05-01", "data2"))).toDF()
df1.as[V1].map(_.toMyMap).show() //Errors out. Added the exception below.
df1.as[V1].map(_.toStr).show() //Works fine.
}
任何帮助都将不胜感激

除以下情况外:

线程“main”org.apache.spark.sparkeException中的异常:作业 由于阶段失败而中止:任务不可序列化: java.io.NotSerializableException: scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$1 序列化堆栈: -对象不可序列化(类:scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$1, 值:包(lang) -字段(类:scala.reflect.internal.Types$ThisType,名称:sym,类型:类scala.reflect.internal.Symbols$Symbol) -对象(类scala.reflect.internal.Types$UniqueThisType,java.lang.type) -字段(类:scala.reflect.internal.Types$TypeRef,名称:pre,类型:类scala.reflect.internal.Types$type) -对象(类scala.reflect.internal.Types$ClassNoArgsTypeRef,String) -字段(类:scala.reflect.internal.Types$TypeRef,名称:normalized,类型:类scala.reflect.internal.Types$type) -对象(类scala.reflect.internal.Types$AliasNoArgsTypeRef,String) -字段(类:org.apache.spark.sql.catalyst.ScalaReflection$$anonfun$6,名称: keyType$1,类型:class scala.reflect.api.Types$TypeApi) -对象(类org.apache.spark.sql.catalyst.ScalaReflection$$anonfun$6,) -字段(类:org.apache.spark.sql.catalyst.expressions.MapObjects,名称:function,类型:interface scala.Function1) -对象(类org.apache.spark.sql.catalyst.expressions.MapObjects,MapObjects(,invoke(upcast)('map,MapType(StringType,StringType,true))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType) -字段(类:org.apache.spark.sql.catalyst.expressions.Invoke,名称:targetObject,类型:class org.apache.spark.sql.catalyst.expressions.Expression) -对象(类org.apache.spark.sql.catalyst.expressions.Invoke,Invoke(映射对象(,Invoke(上传)('map,映射类型(StringType,StringType,true)))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)) -writeObject数据(类:scala.collection.immutable.List$SerializationProxy) -对象(类scala.collection.immutable.List$SerializationProxy,scala.collection.immutable.List$SerializationProxy@7e78c3cf) -writeReplace数据(类:scala.collection.immutable.List$SerializationProxy) -对象(类scala.collection.immutable.$colon$colon,List)(调用(mapobjects(,invoke(upcast)('map,MapType(StringType,StringType,true)))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;), 调用(mapobjects(,invoke(upcast)('map,MapType(StringType,StringType,true))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、valueArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)) -字段(类:org.apache.spark.sql.catalyst.expressions.StaticInvoke,名称: 参数,类型:接口scala.collection.Seq) -对象(类org.apache.spark.sql.catalyst.expressions.StaticInvoke, 静态调用(类) org.apache.spark.sql.catalyst.util.ArrayBasedMapData$,ObjectType(接口 scala.collection.Map)、toScalaMap、invoke(mapobjects(、invoke(upcast('Map、MapType(StringType、StringType、true))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)、invoke(映射对象(、invoke(上传('map、映射类型(StringType、StringType、true))、invoke- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、valueArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)),true) -writeObject数据(类:scala.collection.immutable.List$SerializationProxy) -对象(类scala.collection.immutable.List$SerializationProxy,scala.collection.immutable.List$SerializationProxy@377795c5) -writeReplace数据(类:scala.collection.immutable.List$SerializationProxy) -对象(类scala.collection.immutable.$colon$colon,列表(staticinvoke)(类 org.apache.spark.sql.catalyst.util.ArrayBasedMapData$,ObjectType(接口 scala.collection.Map)、toScalaMap、invoke(mapobjects(、invoke(upcast('Map、MapType(StringType、StringType、true))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)、invoke(映射对象(、invoke(上传('map、映射类型(StringType、StringType、true))、invoke- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、valueArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)、true) -字段(类:org.apache.spark.sql.catalyst.expressions.NewInstance,名称: 参数,类型:接口scala.collection.Seq) -对象(类org.apache.spark.sql.catalyst.expressions.NewInstance, newinstance(类collector.MyMap、staticinvoke(类 org.apache.spark.sql.catalyst.util.ArrayBasedMapData$,ObjectType(接口 scala.collection.Map)、toScalaMap、invoke(mapobjects(、invoke(upcast('Map、MapType(StringType、StringType、true))- 字段(类:“scala.collection.immutable.Map”,名称:“Map”),-root 类别: “collector.MyMap”)、keyArray、ArrayType(StringType,true))、StringType)、数组、ObjectType(类 [Ljava.lang.Object;)、invoke(映射对象(、invoke(上传('map、映射类型(StringType、StringType、true))、invoke- 字段(类别:“sc