【问题标题】:Spark-Submit through command line does not enforce UTF-8 encodingSpark-Submit 通过命令行不强制 UTF-8 编码
【发布时间】:2016-12-02 20:02:52
【问题描述】:

当我使用 Spark 的 Java API 从 IDE 运行我的 spark 作业时,我会以所需的编码格式 (UTF-8) 获得输出。但是如果我从命令行启动“spark-submit”方法,输出就会丢失编码。

当通过命令行界面使用时,有没有一种方法可以强制对“spark-submit”进行编码。

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

非常感谢您的帮助。

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在我的情况下不起作用

      我使用的命令是

      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
      

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2011-08-19
          • 2010-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-03
          • 2016-10-06
          • 2021-04-27
          • 1970-01-01
          相关资源
          最近更新 更多