我有一个DataFrame,列'title_from'如下所示 . .
此colume包含一个句子,我想将此列转换为Array [String] . 我尝试过类似的东西,但它不起作用 .
val newDF = df.select("title_from").map(x => x.split("\\\s+")
我怎样才能做到这一点?如何将字符串的datafram转换为Array [string]的数据帧?我希望evD的newDF行是来自df的单词数组 .
谢谢你的帮助!
您可以使用 withColumn 功能 .
withColumn
import org.apache.spark.sql.functions._ val newDF = df.withColumn("split_title_from", split(col("title_from"), "\\s+")) .select("split_title_from")
您可以尝试按照获取所有作者的列表
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| +-----+
2 回答
您可以使用
withColumn
功能 .您可以尝试按照获取所有作者的列表