java Spark RDD从Hive表中读取数据并保存为JavaPairRDD

HiveContext hiveCtx = new HiveContext(jsc);

hiveCtx.sql("use xx");//xx为Hive分配给部门的权限

Dataset<Row> rows = hiveCtx.sql("select * from xx.table_name where ds = 'dd'");

JavaPairRDD<String, String> jpair = rows.javaRDD().mapPartitionsToPair(new PairFlatMapFunction<Iterator<Row>, String, String>(){
        public Iterator<Tuple2<String, String>> call(Iterator<Row> rows) throws Exception {
        List<Tuple2<String, String>> resultList=new ArrayList<Tuple2<String, String>>();
        while (rows.hasNext()) {
        try{
        Row row= rows.next();
            String lie0 = row.getString(0);
            String lie3 = row.getString(3);
                    resultList.add(new Tuple2<String, String>(lie0, lie3));  
                   
            }catch(Exception ex){ 
            resultList.add(new Tuple2<String, String>("", "")); 
            }
        }
       
        Iterator<Tuple2<String, String>> result = resultList.iterator();
return result;  
        }
        }).filter(new Function<Tuple2<String,String>, Boolean>() {
   public Boolean call(Tuple2<String, String> tuple) throws Exception {
       return tuple._2.isEmpty() ? false : true;
       }
        });



没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试