当前位置: 首页 > 知识库问答 >
问题:

如何获取每个列表的首行数据?

刘子实
2023-03-14

我的数据帧像这样:

+------------------------+----------------------------------------+
|ID                      |probability                             |
+------------------------+----------------------------------------+
|583190715ccb64f503a|[0.49128147201958017,0.5087185279804199]|
|58326da75fc764ad200|[0.42143416087939345,0.5785658391206066]|
|583270ff17c76455610|[0.3949217100212508,0.6050782899787492] |
|583287c97ec7641b2d4|[0.4965059792664432,0.5034940207335569] |
|5832d7e279c764f52e4|[0.49128147201958017,0.5087185279804199]|
|5832e5023ec76406760|[0.4775830044196701,0.52241699558033]   |
|5832f88859cb64960ea|[0.4360509428173421,0.563949057182658]  |
|58332e6238c7643e6a7|[0.48730029128352853,0.5126997087164714]|

我得到了概率栏

val proVal = Data.select("probability").rdd.map(r => r(0)).collect()
proVal.foreach(println)

结果是:

[0.49128147201958017,0.5087185279804199]
[0.42143416087939345,0.5785658391206066]
[0.3949217100212508,0.6050782899787492]
[0.4965059792664432,0.5034940207335569]
[0.49128147201958017,0.5087185279804199]
[0.4775830044196701,0.52241699558033]
[0.4360509428173421,0.563949057182658]
[0.48730029128352853,0.5126997087164714]

但是我想获取每行的第一列数据,如下所示:

0.49128147201958017
0.42143416087939345
0.3949217100212508
0.4965059792664432
0.49128147201958017
0.4775830044196701
0.4360509428173421
0.48730029128352853

如何做到这一点?

输入为标准随机林输入,输入上方为<code>val数据=预测。选择(“文档ID”,“概率”)

predictions.printSchema()

root|--docID: string(nullable=true)|--标签:双(nullable=false)|--特征:向量(nullable=true)|--indexedLabel:双(nullable=true)|--raw预测:向量(nullable=true)|--概率:向量(nullable=true)|--预测:双(nullable=true)|--预测标签:字符串(nullable=true)

并且我想获得“概率”列的第一个值

共有1个答案

夹谷飞龙
2023-03-14

可以使用 Column.apply 方法获取数组列上的第 n 个项目 - 在本例中为第一列(使用索引 0):

import sqlContext.implicits._
val proVal = Data.select($"probability"(0)).rdd.map(r => r(0)).collect()

顺便说一句,如果您使用的是Spark 1.6或更高版本,您还可以使用Dataset API以更简洁的方式将数据帧转换为Doubles:

val proVal = Data.select($"probability"(0)).as[Double].collect()
 类似资料:
  • 我有一个7x12的2d数组。我一直在研究如何获得它的每一列和每一行的总和,并将每个结果放入列表中,一个是每列总和的结果,另一个是每个行的结果。 因此,对于列,我想将每列的结果保存在一个临时整数变量中,在每一行中使用“a”进行迭代,当“a”等于12(即行数)时,然后检查“p”(即列数)是否等于7并退出循环(这意味着每列的总和已添加到新数组中),如果不是这样,则临时变量将被添加到新数组中,临时变量和“

  • 问题内容: 所以我查了一下,这个问题非常相似,但是它缺少一个关键点:SQL Server计算表的每一列中不同值的数量 因此,在这个问题中,他们希望每列的计数都不同。我想要做的是获取表中每个列的每个不同值的计数(而我正在为特定数据库中的所有表执行此操作,这就是为什么我要尝试尽可能地自动化这一点的原因尽可能)。当前,我的代码看起来像这样,我必须为每一列运行: 理想情况下,我的输出应如下所示: 以此类推

  • 我有一个方法返回一个

  • 问题内容: 我有一个名为“ posts”的SQL表,如下所示: 每个类别编号对应一个类别。我将如何计算每个类别在 一个sql查询中 全部出现在帖子中的次数? 例如,这样的查询可能返回如下符号数组: 我当前的方法是对每个可能的类别使用查询,例如:,然后将返回值组合到最终数组中。但是,我正在寻找一种仅使用一个查询的解决方案。 问题答案:

  • 问题内容: 我有一个这样的清单: 我想要这样的结果(列表中的 每个 第一个元素): 我尝试了[:: 1] [0],但没有用 我几周前才开始学习Python。Python版本= 2.7.9 问题答案: 您可以从列表理解中的每个元素获取索引 同样,要学究,您没有的,您没有的。

  • 我在数组列表(嵌套数组列表)中有一个数组列表,如下所示 现在我需要获取存在于arraylist的给定索引中的的实例并为其添加一个值。我使用了以下代码 但是它给了我一个错误 线程"main"java.lang.异常索引:0,大小:0 如何解决这个问题以及为什么会发生这种情况。 谢谢你