zoukankan      html  css  js  c++  java
  • Spark如何读取gbk等非utf8编码的文件

    大数据环境基本都是utf-8编码,如果数据文件非utf-8编码,Spark读取时会乱码,经验项目验证,通过sc.hadoopFile接口比较可靠,该接口返回的数据每行表示为<行偏移,行内容Text>,然后通过map方法,重新构造String,这样获得的String不会乱码,具体实现方式如下代码:

    //数据文件编码
    String encdoing = "gbk";
    //数据文件路径
    String filePath = "/user/test/testfile"
    SparkSession session = SparkSession.builder().getOrCreate();
    JavaSparkContext sc = JavaSparkContext.fromSparkContext(session.sparkContext());
    JavaRDD<String> basRDD = sc.hadoopFile(filePath, TextInputFormat.class,LongWritable.class,Text.class).map(p -> {
        return new String(p._2.getBytes(),0,p._2.getLength(),encoding);
    })
    
  • 相关阅读:
    第一轮冲刺团队评分
    意见汇总
    各组对我组的评价
    对各项目评价建议
    【每日Scrum】第十天冲刺
    【每日Scrum】第九天冲刺
    SQL-插入的方法
    Random
    基本测试理论
    web项目工作流程
  • 原文地址:https://www.cnblogs.com/darange/p/15751863.html
Copyright © 2011-2022 走看看