91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用spark-redis組件訪問云數據庫Redis

發布時間:2021-07-20 00:14:05 來源:億速云 閱讀:201 作者:chen 欄目:大數據

本篇內容主要講解“如何使用spark-redis組件訪問云數據庫Redis”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用spark-redis組件訪問云數據庫Redis”吧!

創建服務

我們以EMR-3.21.0版本和Redis 4.0為例。EMR集群安裝的Spark版本是2.4.3,我們需要使用對應的Spark-Redis 2.4版本,該組件可以支持Redis 2.9.0以上版本。

EMR和Redis需要在同一個VPC網絡中創建,同時,在云數據庫Redis實例啟動之后,需要在“白名單設置”中添加EMR集群IP地址(參考Redis快速入門文檔,https://help.aliyun.com/document_detail/107043.html)。

啟動Spark Shell

接下去,我們登錄EMR Master節點啟動Spark Shell。如果Master節點可以連接外網,可以使用package方式加載spark-redis相關jar包:

spark-shell --packages com.redislabs:spark-redis:2.4.0 \ --conf spark.redis.host=hostname \ --conf spark.redis.port=6379 \ --conf spark.redis.auth=password

spark.redis.host等參數可以在命令行指定,也可以配置在 spark-defaults.conf 中,也可以在代碼中指定。其中:

  1. spark.redis.host:Redis內網連接地址

  2. spark.redis.port:Redis服務端口號

  3. spark.redis.auth:創建Redis實例時指定的密碼

也可以通過--jars的方式指定依賴的jar包:

spark-shell --jars spark-redis-2.4.0.jar,jedis-3.1.0-m1.jar,commons-pool2-2.0.jar \ --conf spark.redis.host=hostname \ --conf spark.redis.port=6379 \ --conf spark.redis.auth=password

通過Spark寫入數據到Redis(RDD)

scala> import com.redislabs.provider.redis._    import com.redislabs.provider.redis._
scala> val data = Array(("key1", "v1"), ("key2", "world"), ("key3", "hello"), ("key4", "Hong"), ("key5", "Kong"))    data: Array[(String, String)] = Array((key1,v1), (key2,world), (key3,hello), (key4,Hong), (key5,Kong))
scala> val distData = sc.parallelize(data)    distData: org.apache.spark.rdd.RDD[(String, String)] = ParallelCollectionRDD[0] at parallelize at <console>:29
scala> sc.toRedisKV(distData)

讀取Redis(RDD)

scala> val stringRDD = sc.fromRedisKV("key*").map{ kv => kv._2 }stringRDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[3] at map at <console>:27
scala> val values = stringRDD.collect()values: Array[String] = Array(world, hello, v1, Kong, Hong)
scala> println(values.mkString(","))world,hello,v1,Kong,Hong

Spark DataFrame寫入Redis

scala> case class Person(name: String, age: Int)defined class Person
scala> val personSeq = Seq(Person("John", 30), Person("Peter", 45))personSeq: Seq[Person] = List(Person(John,30), Person(Peter,45))
scala> val df = spark.createDataFrame(personSeq)df: org.apache.spark.sql.DataFrame = [name: string, age: int]
scala> df.write.format("org.apache.spark.sql.redis").option("table", "person").save()                                                                                

到此,相信大家對“如何使用spark-redis組件訪問云數據庫Redis”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东海县| 松溪县| 马尔康县| 和硕县| 乌拉特后旗| 三河市| 盘山县| 游戏| 福泉市| 荣昌县| 阿荣旗| 夹江县| 遂昌县| 浪卡子县| 宜阳县| 砚山县| 大同县| 漳浦县| 大渡口区| 怀安县| 大连市| 巨野县| 砚山县| 茶陵县| 乐山市| 惠州市| 青神县| 苍溪县| 诸城市| 岳阳县| 微山县| 额济纳旗| 大洼县| 丰都县| 武夷山市| 洮南市| 河北区| 犍为县| 阿拉善盟| 沾益县| 安达市|