如何访问 Spark 数据集列中的数据

How to access data in a Spark Dataset Column

我有一个这样的数据框:

+------+---+
|  Name|Age|
+------+---+
|A-2   | 26|
|B-1   | 30|
|C-3   | 20|
+------+---+

scala> p.select("Name", "Age")
res2: org.apache.spark.sql.DataFrame = [Name: string, Age: string]

这里我们可以清楚的看到,列中的数据是String

类型的

我想用类似 split("-") 的方法转换 Name 列,以仅获取它的第一部分(即 A、B、C)。 但是在 spark 中键入 Column 没有这样的方法,所以我在考虑如何在 Column 中获取 'string' 以便我可以执行 split 操作。

有谁知道我该怎么办?

使用functions.split方法

df.select(split(col("Name"), "-").getItem(0))

spark 数据帧可用的拆分功能。请参阅下面的示例。

//Creating Test Data
val df = Seq(("A-2", 26)
  , ("B-1", 30)
  , ("C-3", 20)
).toDF("name", "age")

df.withColumn("new_name", split(col("name"),"-")(0)).show(false)

+----+---+--------+
|name|age|new_name|
+----+---+--------+
|A-2 |26 |A       |
|B-1 |30 |B       |
|C-3 |20 |C       |
+----+---+--------+