繁体   English   中英

获取Spark中DataFrame列的值

[英]Getting the value of a DataFrame column in Spark

我试图检索DataFrame列的值并将其存储在变量中。 我试过这个:

val name=df.select("name")
 val name1=name.collect()

但以上都没有返回列“name”的值。

Spark版本:2.2.0 Scala版本:2.11.11

这里有几件事。 如果你想看到所有数据收集是要走的路。 但是,如果您的数据太大,将导致驱动器失败。

所以备选方案是检查数据帧中的几个项目。 我通常做的是

df.limit(10).select("name").as[String].collect()

这将提供10个元素的输出。 但现在输出看起来并不好

所以,第二种选择是

df.select("name").show(10)

这将打印前10个元素,有时如果列值很大,它通常会设置“...”而不是烦人的实际值。

因此有第三种选择

df.select("name").take(10).foreach(println)

取10个元素并打印出来。

现在,在所有情况下,您将无法获得合理的数据样本,因为前10个数据将被选中。 因此,要从您可以使用的数据帧中随机拾取

df.select("name").sample(.2, true).show(10)
or
df.select("name").sample(.2, true).take(10).foreach(println)

您可以在数据框上检查“sample”函数

第一个会做:)

val name = df.select("name")将返回另一个DataFrame。 例如,您可以使用name.show()来显示DataFrame的内容。 你也可以收集或收集AsMap来实现驱动程序的结果,但要注意,数据量对于驱动程序来说不应该太大

你也可以这样做:

val names = df.select("name").as[String].collect()

这将返回此DataFrame中的名称数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM