使用pyspark从redis读取特定键

问题描述

我正在尝试使用 pyspark 从 Redis 读取特定密钥。 根据文档,我还没有找到任何特定的命令来读取特定的密钥。使用以下代码,我可以从 Redis 读取所有数据:

testid = spark.read.format("org.apache.spark.sql.redis")\
.option("table",'testing123')\
.option("key.column","id")\
.load()

请推荐

解决方法

你可以试试keys.pattern。来自docs

要读取 Redis 哈希,您必须提供一个键模式 .option("keys.pattern",keysPattern) 选项。数据框架构 应明确指定或可以从随机行推断。

[...] Spark-Redis 尝试根据密钥模式提取密钥:

  • 如果模式以 * 结尾并且它是唯一的通配符,则将提取尾随子字符串
  • 否则不会提取 - 密钥保持原样。
testid = spark.read.format("org.apache.spark.sql.redis") \
.option("keys.pattern","keyPattern:*") \
.option("key.column","id") \
.option("infer.schema","true") \
.load()