交互式

第一步:向redis中添加数据

df0aa29995bfc6721fd30b070ef66da9.png

第二步:将jedis jar包放入~/lib目录下,开启spark服务

503a88437efa5541749852976d7ad64b.png

第三步:通过spark-shell读取redis数据,并做相应处理

b00238d3a6456d32f673b8e2d0cf20b7.png

scala单机版

package com.test

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

import redis.clients.jedis.Jedis

object RedisClient {

def main(args: Array[String]) {

val conf = new SparkConf()

conf.setAppName("wow,my first spark app")

conf.setMaster("local")

val sc = new SparkContext(conf)

var jd = new Jedis("172.171.51.154", 6379)

var str = jd.get("chengshi")

var strList = str.split(",")

val a = sc.parallelize(strList, 3)

val b = a.keyBy(_.length)

b.collect().foreach(s => println(s._1 + ":" + s._2))

sc.stop()

}

}

输出结果

7cb71808c35ecd5319056990af8067f0.png

java单机版

package com.dt.spark.SparkApps.cores;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Arrays;

import org.apache.spark.SparkConf;

import org.apache.spark.api.java.JavaPairRDD;

import org.apache.spark.api.java.JavaRDD;

import org.apache.spark.api.java.JavaSparkContext;

import org.apache.spark.api.java.function.PairFunction;

import org.apache.spark.api.java.function.VoidFunction;

import redis.clients.jedis.Jedis;

import scala.Tuple2;

public class Redis {

public static void main(String[] args) throws FileNotFoundException, IOException {

SparkConf conf = new SparkConf().setAppName("Spark Read From Redis written by Java").setMaster("local");

JavaSparkContext sc = new JavaSparkContext(conf);

Jedis jedis = new Jedis("172.171.51.154", 6379);

String s = jedis.get("chengshi");

String[] strList = s.split(",");

JavaRDD ch = sc.parallelize(Arrays.asList(strList), 4);

JavaPairRDD jp = ch.mapToPair(new PairFunction() {

public Tuple2 call(String word) throws Exception {

return new Tuple2(word, word.length());

}

});

jp.foreach(new VoidFunction>() {

public void call(Tuple2 pairs) throws Exception {

System.out.println(pairs._1() + ":" + pairs._2());

}

});

sc.close();

}

}

输出结果

eb2a47f252f18d2246e070c62aad7512.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐