Spark Streaming 处理中文异常的解决方案

原创 2016年10月13日 23:42:42

    最近用Spark Streaming从Kafka接数据进行处理,是对中文的内容进行计算。发现处理时中文全变成了????????的形式,导致处理的结果和预期的不一样。但把数据放在redis或者放入下游的kafka topic,中文又正常了。为了防止是因为打日志的编码问题导致的判断出错,专门对算法进行了判断,的确就是对?????的东西处理了,而不是原中文字符串。

    遇到这种情况,想到的就是编码问题,因为在在本地运行spark streaming是可以处理中文的,放到集群上就不行了,在程序中输出

        Charset.defaultCharset()   或者   System.getProperty("file.encoding") 可以查看程序运行时环境的编码

    进行对比,发现本地的是Utf-8,是理想的。而提交到集群上的任务,输出为ISO-8859-1,直接导致了程序运行时处理的中文都变成了?????

    解决方案是修改一下提交spark任务的客户端配置(提交该任务的机器,不是去修改集群),找到spark-env.sh比如/etc/spark/conf/spark-env.sh,设置

         export SPARK_JAVA_OPTS=" -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 "

    再次提交任务后,发现中文可以正常的处理了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

整合Kafka到Spark Streaming——代码示例和挑战

作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如...
  • stark_summer
  • stark_summer
  • 2015年03月03日 14:58
  • 114930

SparkStream从kafka读取数据编码问题(Java)

SparkStreaming从kafka读取文件流时(Java),默认是utf-8的,如果源文件的编码不是utf-8,那就会出现乱码现象,但是kafka的官网参数里没有关于编码的参数,不过kafka的...
  • liguangzhu620
  • liguangzhu620
  • 2017年08月19日 14:26
  • 657

Spark 处理中文乱码问题(UTF-8编码)

问题场景 要用spark处理一大堆微信日志数据,日志存放在HDFS上,是xml格式,里面有大量的中文。用scala + java实现了xml的处理逻辑,其中有一步是要获取xml中的一个title字段,...
  • Amber_amber
  • Amber_amber
  • 2015年12月03日 16:14
  • 13515

解决spark中文乱码

由于spark在读取文件时的默认编码格式为utf-8,所以spark在处理gbk格式的文件时会出现乱码问题,以下代码则可以解决这一问题import org.apache.spark.SparkConf...
  • u012893747
  • u012893747
  • 2017年06月02日 14:30
  • 1948

spark加载中文乱码

spark加载中文乱码在有些时候,spark加载HDFS或者本地文件中的中文时候会出现乱码的现象,因此需要在加载的时候进行一些字符的编码设置,将加载的文件的编码格式设置为UTF-8 以下是现有的解决方...
  • u013928917
  • u013928917
  • 2017年07月18日 09:14
  • 682

离线轻量级大数据平台Spark之中文字符显示问题的解决

问题:spark读取文本文件转化成JavaRDD后发现中文字符显示乱码。 在spark-shell环境里执行:System.getProperty("file.encoding"),返回GB2312...
  • fjssharpsword
  • fjssharpsword
  • 2016年11月23日 15:31
  • 2728

spark-sql中文字符使用问题

所有涉及数据源显示都涉及原始数据的字符集编码和客户端语言环境的设置。 那么在spark-sql环境,只要正确的字符集编码和正确的客户端语言环境设置,显示,使用中文,完全不是困难。 #上传的文本文件编码...
  • oufuji
  • oufuji
  • 2015年12月20日 13:52
  • 3904

spark加载中文乱码

spark加载中文乱码在有些时候,spark加载HDFS或者本地文件中的中文时候会出现乱码的现象,因此需要在加载的时候进行一些字符的编码设置,将加载的文件的编码格式设置为UTF-8 以下是现有的解决方...
  • u013928917
  • u013928917
  • 2017年07月18日 09:14
  • 682

Spark 处理中文乱码问题(UTF-8编码)

问题场景 要用spark处理一大堆微信日志数据,日志存放在HDFS上,是xml格式,里面有大量的中文。用scala + java实现了xml的处理逻辑,其中有一步是要获取xml中的一个title字段,...
  • Amber_amber
  • Amber_amber
  • 2015年12月03日 16:14
  • 13515

Spark Streaming快速状态流处理

许多复杂流处理流水线程序必须将状态保持一段时间,例如,如果你想实时了解网站用户行为,你需要将网站上各“用户会话(user session)”信息保存为持久状态并根据用户的行为对这一状态进行持续更新。这...
  • lively1982
  • lively1982
  • 2016年02月17日 10:16
  • 1518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark Streaming 处理中文异常的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)