当前位置: 首页 > 面试题库 >

如何在Spark RDD(Java)中按索引获取元素

秦联
2023-03-14
问题内容

我知道方法rdd.firstwfirst(),它为我提供了RDD中的第一个元素。

还有rdd.take(num)方法,它给了我第一个“ num”元素。

但是,是否有可能通过索引获取元素?

谢谢


问题答案:

首先应为RDD建立索引,这应该是可能的。转换zipWithIndex提供了稳定的索引,以其原始顺序对每个元素进行编号。

鉴于: rdd = (a,b,c)

val withIndex = rdd.zipWithIndex // ((a,0),(b,1),(c,2))

要按索引查找元素,此形式无用。首先,我们需要使用索引作为键:

val indexKey = withIndex.map{case (k,v) => (v,k)}  //((0,a),(1,b),(2,c))

现在,可以使用lookupPairRDD中的操作按键查找元素:

val b = indexKey.lookup(1) // Array(b)

如果您希望lookup经常在同一RDD上使用,建议您缓存indexKeyRDD以提高性能。

如何使用Java
API
进行此操作是读者的一项练习。



 类似资料:
  • 问题内容: 我正在研究Java教程,发现在GridLayout中查找JButton的x / y索引的方法是遍历与布局关联的按钮b的二维数组,并检查是否 有没有更简单的方法来获取按钮的X / Y索引? 就像是: this是GameWindow实例,并且ev在用户按下按钮时触发了ActionEvent。 在这种情况下,它应该得到:x == 2,y == 1 @ GameWindow.java: @ J

  • 问题内容: 我正在尝试自动化Google图片页面: https://www.google.com/search?q=pluralsight&biw=1416&bih=685&source=lnms&tbm=isch&sa=X&ei=qGd6VN6bEZTooAT7q4C4BQ&sqi=2&ved=0CAgQ_AUoAw 所有图像都具有相同的类,但没有id,并且结果在不断变化。因此,我希望能够基于它

  • 问题内容: 我想替换html元素中的内容,所以为此使用了以下功能: 上面的方法效果很好,但是问题是我要替换其内容的页面上有多个html元素。因此,我不能使用id而是使用类。有人告诉我javascript不支持任何类型的内置get element by class函数。那么如何修改以上代码以使其与类(而不是ID)一起使用? PS我不想为此使用jQuery。 问题答案: 此代码应在所有浏览器中都有效。

  • 问题内容: 我发现自己经常这样编写代码: 相反,我可以做 但这似乎不是“ pythonic”。(您知道…建立索引。该死!)是否有某种语法可以让我使用循环,列表理解或生成器同时提取索引(k)和元素(i)?我认为,任务是在科学计算中进行的,因此循环体中有很多东西,列表理解本身可能不够强大。 我也欢迎有关概念的技巧,尽管我可能没有。谢谢。 问题答案: 您可以使用: 有关循环技术的更多信息。 编辑: 如注

  • 问题内容: 我需要使用Java在Apache Solr中获取索引的总大小。以下代码获取文档总数,但是我正在寻找大小。并通过使用ReplicationHandler,我想我可以得到此链接上某人告诉的索引大小。http://lucene.472066.n3.nabble.com/cheking- the-size-of-the- index-using-solrj-API-s- td692686.ht

  • 如何在JavaFX的网格窗格中获取列索引和行索引。请参见下面的代码 当鼠标在text1上输入时,我想获取GridPane的列索引和行索引 请让我知道。