Как преобразовать строковый столбец информационного кадра в столбец Array [String] с помощью Apache Spark и Scala - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть DataFrame со столбцом title_from, как показано ниже.enter image description here.

Этот столбец содержит предложение, и я хочу преобразовать этот столбец в массив [String].Я пробовал что-то подобное, но это не работает.

val newDF = df.select("title_from").map(x => x.split("\\\s+")

Как этого добиться?Как я могу преобразовать datafram строк в dataframe Array [string]?Я хочу, чтобы каждая строка newDF представляла собой массив слов из df.

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Можете ли вы попробовать следующее, чтобы получить список всех авторов

scala> val df = Seq((1,"a1,a2,a3"), (2,"a1,a4,a10")).toDF("id","author")
df: org.apache.spark.sql.DataFrame = [id: int, author: string]

scala> df.show()
+---+---------+
| id|   author|
+---+---------+
|  1| a1,a2,a3|
|  2|a1,a4,a10|
+---+---------+


scala> df.select("author").show
+---------+
|   author|
+---------+
| a1,a2,a3|
|a1,a4,a10|
+---------+

scala> df.select("author").flatMap( row => { row.get(0).toString().split(",")}).show()
+-----+
|value|
+-----+
|   a1|
|   a2|
|   a3|
|   a1|
|   a4|
|  a10|
+-----+
0 голосов
/ 09 декабря 2018

Вы можете использовать функцию withColumn.

import org.apache.spark.sql.functions._
val newDF = df.withColumn("split_title_from", split(col("title_from"), "\\s+"))
              .select("split_title_from")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...