Spark数据帧到LabeledPoint转换

时间:2016-10-17 06:42:24

标签: apache-spark

我正在尝试将Spark数据帧转换为Labeled点RDD。我使用以下代码,主要受到here给出的解决方案的启发。我可以遵循代码的逻辑,但不幸的是,Sparks会抛出一个" Task Not Serializable"运行时出错(更具体地说是我将RDD转换为Labeled Point的部分)

val ignored = List("target")
val featInd = df.columns.diff(ignored).map(df.columns.indexOf(_))

// Get index of target
val targetInd = df.columns.indexOf("target") 

val labeled = df.rdd.map(r => LabeledPoint(
             r.getDouble(targetInd), // Get target value
             // Map feature indices to values
             Vectors.dense(featInd.map(r.getDouble(_)).toArray) 
))

当我尝试搜索此错误时,我意识到这是一个通用错误 - 但我对Spark很新,所以在这种特定情况下我们无法弄清楚导致此错误的原因

非常感谢任何帮助。

编辑: 更新错误消息:

  

org.apache.spark.SparkException:任务不可序列化   org.apache.spark.util.ClosureCleaner $ .ensureSerializable(ClosureCleaner.scala:304)     在   org.apache.spark.util.ClosureCleaner $ .ORG $阿帕奇$火花$ UTIL $ ClosureCleaner $$干净(ClosureCleaner.scala:294)     在   org.apache.spark.util.ClosureCleaner $清洁机壳(ClosureCleaner.scala:122)     在org.apache.spark.SparkContext.clean(SparkContext.scala:2055)at   org.apache.spark.rdd.RDD $$ anonfun $ map $ 1.apply(RDD.scala:324)at at   org.apache.spark.rdd.RDD $$ anonfun $ map $ 1.apply(RDD.scala:323)at at   org.apache.spark.rdd.RDDOperationScope $ .withScope(RDDOperationScope.scala:150)     在   org.apache.spark.rdd.RDDOperationScope $ .withScope(RDDOperationScope.scala:111)     在org.apache.spark.rdd.RDD.withScope(RDD.scala:316)at   org.apache.spark.rdd.RDD.map(RDD.scala:323)at   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC。(77)     在   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$(86)     在   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC。(88)     在   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$(90)     at $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:92)     $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:94)at   $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:96)at   $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:98)at   $ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:100)at   $ iwC $$ iwC $$ iwC $$ iwC。(:102)at   $ iwC $$ iwC $$ iwC。(:104)at   $ iwC $$ iwC。(:106)at $ iwC。(:108)at   (:110)at。(:114)at   。()at。(:7)at。()     at $ print()at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   org.apache.spark.repl.SparkIMain $ ReadEvalPrint.call(SparkIMain.scala:1065)     在   org.apache.spark.repl.SparkIMain $ Request.loadAndRun(SparkIMain.scala:1346)     在   org.apache.spark.repl.SparkIMain.loadAndRunReq $ 1(SparkIMain.scala:840)     在org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)     在org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)     在   org.apache.zeppelin.spark.SparkInterpreter.interpretInput(SparkInterpreter.java:810)     在   org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:753)     在   org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:746)     在   org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94)     在   org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun(RemoteInterpreterServer.java:341)     在org.apache.zeppelin.scheduler.Job.run(Job.java:176)at   org.apache.zeppelin.scheduler.FIFOScheduler $ 1.run(FIFOScheduler.java:139)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     在java.util.concurrent.FutureTask.run(FutureTask.java:262)at   java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:178)     在   java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:745)引起:   java.io.NotSerializableException:org.apache.spark.sql.Column   序列化堆栈:      - 对象不可序列化(类:org.apache.spark.sql.Column,值:cast(unixtimestamp(x31,yyyy-mm-dd)作为时间戳))      - field(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,name:ts,type:class org.apache.spark.sql.Column)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC @ 21819ecc)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC万国表$$ $$ IWC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 55e507d9)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 73ab77c5)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 22ef6ab0)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC @ 6b8d0b8f)      - 字段(类:$ iwC $$ iwC $$ iwC,名称:$ iw,类型:类$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC @ 5f2e0893)      - field(类:$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC,$ iwC $$ iwC @ 2859e1a9)      - field(类:$ iwC,名称:$ iw,类型:class $ iwC $$ iwC)      - 对象(类$ iwC,$ iwC @ 2b85a09c)      - field(class:line2053277267 $ 28. $ read,name:$ iw,type:class $ iwC)      - object(class line2053277267 $ 28. $ read,line2053277267$28.$read@b3097a9)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ VAL254,类型:class line2053277267 $ 28. $ read)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC @ 7fb74a8a)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC万国表$$ $$ IWC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 4c7d3fc3)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ IWC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 59dc3f29)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC $$ iwC @ 589580f9)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC $$ iwC @ 3abf9e37)      - 字段(类:$ iwC $$ iwC $$ iwC,名称:$ iw,类型:类$ iwC $$ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC $$ iwC,$ iwC $$ iwC $$ iwC @ 591c2bf7)      - field(类:$ iwC $$ iwC,名称:$ iw,类型:class $ iwC $$ iwC $$ iwC)      - 对象(类$ iwC $$ iwC,$ iwC $$ iwC @ 27cdfbd6)      - field(类:$ iwC,名称:$ iw,类型:class $ iwC $$ iwC)      - 对象(类$ iwC,$ iwC @ 53ed5332)      - field(class:line2053277267 $ 56. $ read,name:$ iw,type:class $ iwC)      - 对象(类line2053277267 $ 56. $ read,line2053277267 $ 56.$read@376cb566)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,name:   $ VAL329,类型:class line2053277267 $ 56. $ read)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ @ 6f9b0210)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,   name:$ outer,type:class   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC,   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC @ 51f82ae2)      - 字段(类:$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ anonfun $ 1,   name:$ outer,type:class   $ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC万国表$$ $$ IWC)      - 对象(类$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ anonfun $ 1,   ) 在   org.apache.spark.serializer.SerializationDebugger $ .improveException(SerializationDebugger.scala:40)     在   org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:47)     在   org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:101)     在   org.apache.spark.util.ClosureCleaner $ .ensureSerializable(ClosureCleaner.scala:301)     ... 51更多谢谢!

0 个答案:

没有答案