如何解决有没有办法将pyspark数据帧写入redis的azure缓存?
我有一个包含 2 列的 pyspark 数据框。我为 redis 实例创建了一个 azure 缓存。我想将pyspark数据帧写入redis,数据帧的第一列作为键,第二列作为值。我怎样才能在 azure 中做到这一点?
解决方法
您需要利用这个库:https://github.com/RedisLabs/spark-redis 以及所需的相关 jar(取决于您使用的 spark+scala 版本)。
就我而言,我在 spark cluster(Scala=2.12) 最新 spark 上安装了 3 个 jar:
- spark_redis_2_12_2_6_0.jar
- commons_pool2_2_10_0.jar
- jedis_3_6_0.jar
关于连接redis的配置:
集群配置
spark.redis.auth PASSWORD
spark.redis.port 6379
spark.redis.host xxxx.xxx.cache.windows.net
确保你有 azure redis 4.0,库可能有 6.0 的问题。 推送示例代码:
from pyspark.sql.types import StructType,StructField,StringType
schema = StructType([
StructField("id",StringType(),True),StructField("colA",StructField("colB",True)
])
data = [
['1','8','2'],['2','5','3'],['3','3','1'],['4','7','2']
]
df = spark.createDataFrame(data,schema=schema)
df.show()
--------------
(
df.
write.
format("org.apache.spark.sql.redis").
option("table","mytable").
option("key.column","id").
save()
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。