
项目实战从0到1之Spark(7)读写Redis数据
发布日期:2021-05-14 00:16:49
浏览次数:25
分类:博客文章
本文共 2625 字,大约阅读时间需要 8 分钟。
@������������������������������������
Spark2.0 ������Redis������(scala)������redis5.0.3
������������������������spark2.3.2���������redis5.0.3������
1.������������
���pom.xml������������������
com.redislabs spark-redis 2.3.1-RC1
2.������
import org.apache.spark.sql.types.{IntegerType,StringType,StructField,StructType}import org.apache.spark.sql.{SaveMode, SparkSession}object SparkReadRedis { case class Person(name: String, age: Int) def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("SparkReadRedis") .master("local[*]") .config("spark.redis.host","10.101.12.104") .config("spark.redis.port", "6379") .config("spark.redis.auth","aaron227") //������redis������ .config("spark.redis.db","0") //������redis��� .getOrCreate() // ������������������redis��� val personSeq = Seq(Person("Aaron", 30), Person("Peter", 45)) val df = spark.createDataFrame(personSeq) df.write .format("org.apache.spark.sql.redis") .option("table", "person") .option("key.column", "name") .mode(SaveMode.Overwrite) .save() // ���redis������������������������������������ val loadedDf = spark.read .format("org.apache.spark.sql.redis") .option("table", "person") .option("key.column", "name") .load() loadedDf.show(false) // ���redis������������������������������������ spark.sql( s""" |CREATE TEMPORARY VIEW person |(name STRING, age INT,address STRING, salary DOUBLE) |USING org.apache.spark.sql.redis |OPTIONS (table 'person',key.column "name")""".stripMargin) val loadedDf2 = spark.sql(s"SELECT * FROM person") loadedDf2.show(false) // ���redis������������������������������������ val loadedDf3 = spark.read .format("org.apache.spark.sql.redis") .schema(StructType(Array(StructField("id", IntegerType), StructField("name", StringType), StructField("age", IntegerType)))) .option("keys.pattern", "person:*") .option("key.column", "name") .load() loadedDf3.show(false) spark.stop() }}
3.������������
a. ������������������������,������redis������������
b. ������������������������,���������������������������+-----+---+|name |age|+-----+---+|Peter|45 ||Aaron|30 |+-----+---++-----+---+-------+------+|name |age|address|salary|+-----+---+-------+------+|Peter|45 |null |null ||Aaron|30 |null |null |+-----+---+-------+------++----+-----+---+|id |name |age|+----+-----+---+|null|Peter|45 ||null|Aaron|30 |+----+-----+---+
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月12日 16时09分21秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
grafana改用https登录
2021-05-15
使用MySQLTuner-perl对MySQL进行优化
2021-05-15
2018年3月最新的Ubuntu 16.04.4漏洞提权代码
2021-05-15
异或交换两个数的值
2021-05-15
使用python绘出常见函数
2021-05-15
Golang AES加密
2021-05-15
Puppet的一些奇技淫巧
2021-05-15
foreman源NO_PUBKEY 6F8600B9563278F6
2021-05-15
亚马逊aws文档语法错误
2021-05-15
什么是5G?居然有人用漫画把它讲得如此接地气!
2021-05-15
Spring cloud --分布式配置中心组件Spring Cloud Config
2021-05-15
UE4接入Android第三方库2——通过JIN与GameActivity通信
2021-05-15
Unity Job System 2——并行处理数据
2021-05-15
BIG解决保险欺诈问题,开创数字化保险时代
2021-05-15
c++ hpp使用好处
2021-05-15
Mac 使用Eclipse老是闪退解决方案
2021-05-15
谈笑间学会-Hbase Rowkey设计
2021-05-15
spark概述
2021-05-15
JavaScript 知识梳理[一] 变量类型,浅拷贝,深拷贝
2021-05-15
Coursera普林斯顿算法课第二次作业
2021-05-15