开发者社区> 问答> 正文

Spark - 使用OpenCSV解析文件的序列化问题

[Ljava.lang.Object;)

- object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class test.Main, functionalInterfaceMethod=org/apache/spark/api/java/function/Function.call:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic test/Main.lambda$main$49bd2722$1:(Lcom/opencsv/CSVParser;Ljava/lang/String;)Ljava/lang/String;, instantiatedMethodType=(Ljava/lang/String;)Ljava/lang/String;, numCaptured=1])
- writeReplace data (class: java.lang.invoke.SerializedLambda)
- object (class test.Main

$$ Lambda$19/429639728, test.Main $$

Lambda$19/429639728@72456279)

- field (class: org.apache.spark.api.java.JavaPairRDD

$$ anonfun$toScalaFunction$1, name: fun$1, type: interface org.apache.spark.api.java.function.Function) - object (class org.apache.spark.api.java.JavaPairRDD $$

anonfun$toScalaFunction$1, )

at org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:40)
at org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:46)
at org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:100)
at org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:400)
... 12 more

似乎Spark尝试序列化lambda表达式,不知何故lamba表达式保持引用parser导致上述错误。

问题是:有没有办法避免该异常并在传递给Spark的lambda表达式中使用不可序列化的库?我真的不想实现自己的csv解析器。

展开
收起
社区小助手 2018-12-19 17:05:54 2215 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    Spark支持开箱即用的CSV文件

    import org.apache.spark.sql.Row;
    import org.apache.spark.sql.Dataset;

    Dataset df = spark.read().format("csv")

                      .option("sep", ";")
                      .option("header", "true") //or "false" if no headers
                      .load("filename.csv");

    编辑(提升评论到主要答案)

    如果你真的需要它,你可以从DataFrame获取RDD,df.javaRDD() 尽管最好使用DataSet / DataFrame API

    2019-07-17 23:23:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载

相关镜像