通过命令行Spark-Submit不强制执行UTF-8编码

时间:2016-07-28 12:20:05

标签: java apache-spark encoding utf-8 bigdata

当我使用Spark的Java API从IDE运行我的spark作业时,我得到了所需编码格式(UTF-8)的输出。但是如果我从命令行启动'spark-submit'方法,则输出会错过编码。

当通过命令行界面使用时,是否可以通过“spark-submit”强制执行编码。

我使用的是Windows 10操作系统和Eclipse IDE。

非常感谢您的帮助。

谢谢。

3 个答案:

答案 0 :(得分:2)

像这样运行你的Spark工作:  spark-submit --class com.something.class --name "someName" --conf "spark.driver.extraJavaOptions=-Dfile.encoding=utf-8"

答案 1 :(得分:0)

在我的情况下不起作用

我使用的命令是

spark-submit --class com.rera.esearch --jars /Users/nitinthakur/.ivy2/cache/mysql/mysql-connector-java/jars/mysql-connector-java-8.0.11.jar /Users/nitinthakur/IdeaProjects/Rera2/target/scala-2.11/rera2_2.11-0.1.jar
--conf "spark.driver.extraJavaOptions=-Dfile.encoding=utf-8" 127.0.0.1 root

以下命令的输出

println(System.getProperty("file.encoding")) // US-ASCII
println(scala.util.Properties.encodingString) // US-ASCII

答案 2 :(得分:0)

如果您在executor中运行的代码(例如foreachPartition或mapPartition之间的代码)中看到该问题,则必须将spark.executor.extraJavaOptions设置为

--conf 'spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8'

如果您的代码在驱动程序中运行,则按上述设置,即

--conf "spark.driver.extraJavaOptions=-Dfile.encoding=utf-8"