当前位置:  开发笔记 > 数据库 > 正文

尝试从apache的sharedRDD中检索数据点燃上下文

如何解决《尝试从apache的sharedRDD中检索数据点燃上下文》经验,为你挑选了1个好方法。

我正在尝试将apache点燃与火花融合,而且我是apache点燃的新手.我想将数据保存在分布式缓存中并检索它.

我通过在spark中加载文件并尝试使用Apache Ignite的sharedRDD.savePairs(key,value)保存在缓存中来创建数据框.键的类型为string,value的类型为spark dataframe.现在我想检索存储的数据并打印出来.我甚至不确定它是否实际上与类型数据帧一起保存.



1> dmagda..:

要从RDD检索数据,您可以使用以下方法中的至少一种:

1)sharedRDD.filter(...).collect()方法.作为示例,下面的代码从名为"testCache"的缓存中获取包含单词"river"的所有值

val cache = igniteContext.fromCache("testCache")
val result = cache.filter(_._2.contains("river")).collect()

使用'filter'方法读取值

2)sharedRDD.sql(...)方法.

val cacheRdd = igniteContext.fromCache("personsCache")
val result = cacheRdd.sql(
  "select name from Person where id > ? and id < ?", 10, 100)

使用SQL获取值


@Srini可以在缓存中安全地使用DataFrame,但我认为没有任何意义.IgniteRDD是一个共享的**键值**RDD,它在一个集群中统一存储键值元组.当DataFrame作为值存储时,它将被放置到单个节点的单个分区,就像任何其他值(int,String等)一样.因此,如果您希望从中受益,如果IgniteRDD应该存储实际值而不是数据帧.如果您仍想使用IgniteRDD存储DataFrame,则可以使用Spark的rdd.collect()方法将其恢复.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有