Spark遇到中文乱码问题如何解决

Spark 遇到中文乱码问题如何解决?

  • 问题原因:
    一般是spark平台机器环境编码设置问题

  • 解决方法:

  1. 在spark-default中为executor加上-Dfile.encoding=UTF-8
    spark/conf/spark-defaults.conf

    1
    spark.executor.extraJavaOptions -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -XX:NewRatio=3 -XX:SurvivorRatio=3 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Dfile.encoding=UTF-8
  2. 在所有涉及到字节转换时,一定要指定编码方式

    1
    2
    3
    4
    5
    String -> Byte: 
    string.getBytes("UTF-8")

    Byte -> String:
    new String(bytes, "UTF-8")