2016-12-03 3 views
1

最近Sparkを使用していて、Spark DataFrameを保存しようとすると問題が発生し始めました。Spark DataFrameをCSVとして保存するとInvalidClassExceptionが発生します

私は正常に動作overthing .save機能を使用する場合:

df.write.save("SparkTest_output") 

しかし、私は.csvまたは.json(またはその他の拡張タイプ)を使用しようとします。例:

df.write.csv("SparkTest_output") 

私はInvalidClassExceptionを得る:

java.io.InvalidClassException: org.apache.commons.lang3.time.FastDateFormat; local class incompatible: stream classdesc serialVersionUID = 1, local class serialVersionUID = 2 
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:621) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)...etc 

周り読んだ後、私はこの例外がバージョンのエラーで発生する可能性があることを学んだが、私は、私は「とき、こうである可能性が方法がわかりませんSpark 2.0.2.1で1つのファイルのみを実行しています。他に誰かがこの問題にぶつかったのですか?起動おかげ

Here are the DataFrame write member functions from the docs

答えて

0

それは--packagesが定義されていない可能性がありますか?

spark-1.5.1-bin-hadoop2.6/bin/spark-shell --packages com.databricks:spark-csv_2.11:1.2.0 the_script_to_run.py 

上記の例は、以前のdatabricks dist。のもので、バージョンが正しいパスを使用してください。これは役に立ちますか?

+0

は、その特定のケースで – ralston

+0

良い点(必要に応じて外部のパッケージなし)で構築されています。 –

0

私が使用して終了(逐語的に)何以下だと、望ましい結果だ:

df.write.csv(path='path/to/somewhere/in/hdfs', mode='overwrite', sep=',', header=False) 

注:(私の場合、SQLに似たクエリで)あなたのコードは何の結果を生成しない場合は、DataFrameWriterはしません何かを保存する。だから私は、DataFrameWriterが動作していないと思っていました。現実には、クエリが0行を取り出しただけです。この全体につまずく誰のための

ドキュメント:CSVファイルのSparkと2.0+サポートが来るので、私はパッケージを指定しませんでしたSpark 2.0.0 DataFrameWriter

関連する問題