最近用Spark Streaming從Kafka接數據進行處理,是對中文的內容進行計算。發現處理時中文全變成了????????的形式,導致處理的結果和預期的不一樣。
遇到這種情況,想到的就是編碼問題,因爲在在本地運行spark streaming是可以處理中文的,放到集羣上就不行了。
解決方法:
集羣上提交spark任務,指定參數
--conf spark.executor.extraJavaOptions="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
重新提交任務,中文顯示正常