Как получить доступ к данным в столбце набора данных Spark - PullRequest
0 голосов
/ 23 марта 2019

У меня есть датафрейм:

+------+---+
|  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

Я хочу преобразовать столбец Name с помощью метода split("-"), чтобы получить только первую его часть (т. Е. A, B, C). Но у типа Column в spark такого метода нет, поэтому я думаю, как получить «строку» внутри столбца, чтобы я мог выполнить операцию split.

Кто-нибудь знает, что мне делать?

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Функция разделения доступна для кадра данных искры.Смотрите пример ниже.

//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       |
+----+---+--------+
1 голос
/ 23 марта 2019

Использование functions.split метод

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