我的火花版本是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
但是有些桌子还可以,我不知道为什么。任何帮助都是值得欣赏的。
答案 0 :(得分:0)
如果任何字符对于给定的字符集不合法,则抛出java.nio.charset.MalformedInputException。使用
检查文件编码System.getProperty("file.encoding");
您可以使用
等环境变量设置编码export SPARK_JAVA_OPTS="-Dfile.encoding=UTF-8"