我想访问数据帧中特定列的最小值和最大值,但我没有该列的标题,只有它的编号,所以我应该使用 scala 吗?
也许可以这样做
val q = nextInt(ncol) //we pick a random value for a column number
col = df(q)
val minimum = col.min()
对不起,如果这听起来像一个愚蠢的问题,但我无法找到任何关于这个问题的信息SO :/ /。
从元数据中获取列名如何?
val selectedColumnName = df.columns(q) //pull the (q + 1)th column from the columns array
df.agg(min(selectedColumnName), max(selectedColumnName))
您可以先使用列编号提取列名(通过索引 df.columns
),然后使用列名进行聚合:
val df = Seq((2.0, 2.1), (1.2, 1.4)).toDF("A", "B")
// df: org.apache.spark.sql.DataFrame = [A: double, B: double]
df.agg(max(df(df.columns(1))), min(df(df.columns(1)))).show
+------+------+
|max(B)|min(B)|
+------+------+
| 2.1| 1.4|
+------+------+