当我使用Spark的Java API从IDE运行我的spark作业时,我得到了所需编码格式(UTF-8)的输出。但是如果我从命令行启动'spark-submit'方法,则输出会错过编码。
当通过命令行界面使用时,是否可以通过“spark-submit”强制执行编码。
我使用的是Windows 10操作系统和Eclipse IDE。
非常感谢您的帮助。
谢谢。
答案 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"