当从sparkDataframescala写入redis时,垃圾值正在到来

zy1mlcev  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(275)

我正在尝试从sparkDataframe向redis写入数据,如下所示。但是,当您在redishell中获取key*时,键的值会变成垃圾,下面有一个示例。谁能帮我解决这里的问题。
使用如下:

spark 2.3 
scala: 2.11.8
"org.apache.spark" %% "spark-streaming" % "2.3.0" % "provided",
"com.redislabs" % "spark-redis" % "2.3.1-M1",
"redis.clients" % "jedis" % "2.9.0",

构建工具:sbt
代码:

case class Person(name:String, age: Int)
  val person = Seq(Person("kishi", 80), Person("person",30))
  val df = spark.createDataFrame(person)
  df.write
    .format("org.apache.spark.sql.redis")
    .option("table","people5")
    .option("model","binary")
    .mode("Append")
    .save()

redis shell中的结果:

devredis.redis.cache.windows.net:6379> keys people5*
1) "people5:0f7171eeee7c448fad62d2670328ab38"
2) "people5:99c4430f54984896b6ff20f7749097cd"

devredis.redis.cache.windows.net:6379> get people5:0f7171eeee7c448fad62d2670328ab38
"\xac\xed\x00\x05ur\x00\x13[Ljava.lang.Object;\x90\xceX\x9f\x10s)l\x02\x00\x00xp\x00\x00\x00\x02t\x00\x05kishisr\x00\x11java.lang.Integer\x12\xe2\xa0\xa4\xf7\x81\x878\x02\x00\x01I\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x00P"

devredis.redis.cache.windows.net:6379> get people5:99c4430f54984896b6ff20f7749097cd
"\xac\xed\x00\x05ur\x00\x13[Ljava.lang.Object;\x90\xceX\x9f\x10s)l\x02\x00\x00xp\x00\x00\x00\x02t\x00\x05pesonsr\x00\x11java.lang.Integer\x12\xe2\xa0\xa4\xf7\x81\x878\x02\x00\x01I\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x00\x1e"

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题