gpt4 book ai didi

arrays - 如何使用Scala和Spark从数组中选择非顺序子集元素?

转载 作者:行者123 更新时间:2023-12-04 13:26:45 28 4
gpt4 key购买 nike

在Python中,这就是我要做的。

>>> x
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
>>> x[np.array([3, 3, 1, 8])]
array([7, 7, 9, 2])

这在Scala Spark shell中不起作用:
scala> val indices = Array(3,2,0)
indices: Array[Int] = Array(3, 2, 0)

scala> val A = Array(10,11,12,13,14,15)
A: Array[Int] = Array(10, 11, 12, 13, 14, 15)

scala> A(indices)
<console>:28: error: type mismatch;
found : Array[Int]
required: Int
A(indices)

foreach方法也不起作用:
scala> indices.foreach(println(_))
3
2
0

scala> indices.foreach(A(_))
<no output>

我想要的是B的结果:
scala> val B = Array(A(3),A(2),A(0))
B: Array[Int] = Array(13, 12, 10)

但是,我不想像这样硬编码,因为我不知道索引有多长时间或其中将包含什么。

最佳答案

我能想到的最简洁的方法是翻转您的思维模型并将索引放在首位:

indices map A

而且,我可能会建议使用 lift返回 Option
indices map A.lift

关于arrays - 如何使用Scala和Spark从数组中选择非顺序子集元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29418877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com