2016-08-26 23 views
0

私のスパークバージョンは1.6.2です。私のコードは行の書き込み中にタスクが失敗しました

val phoneDF = sqlContext.read.format("jdbc").options(
    Map("url" -> "jdbc:db2://127.0.0.1:50000/FERTDD", 
     "driver" -> "com.ibm.db2.jcc.DB2Driver", 
     "user" -> "fwetergfdv", 
     "password" -> "fdgergtt", 
     "dbtable" -> "dsfewrrte")).load() 
    phoneDF.write.parquet("hdfs://hadoop:9000/db2/dfgtt/dsfewrrte.parquet") 

あるしかし、私は間違って持ってきた

org.apache.spark.SparkException: Task failed while writing rows 
Caused by: java.nio.charset.MalformedInputException: Input length = 1 
WARN scheduler.TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, localhost): org.apache.spark.SparkException: Task failed while writing rows 

である。しかし、いくつかのテーブルには、助けを感謝しているwhy.Any私にはわからない、OKです。

+0

理想的にはあなたの仕事を得る必要がありますフォールトトレランスで、このようなエラーを取得するために、そのOKのような環境変数を使用してエンコード設定でき

System.getProperty("file.encoding"); 

を使用してファイルのエンコーディングを確認してください。そうじゃない? – abhiieor

+0

いいえ、私の仕事は中断します – Smith

答えて

0

与えられた文字セットで文字が合法でない場合、java.nio.charset.MalformedInputExceptionがスローされます。あなたは

export SPARK_JAVA_OPTS="-Dfile.encoding=UTF-8" 
+0

私のファイルエンコーディングはUTF-8です。問題ありません。 – Smith

関連する問題