将网站的url分割成多列到scala数据框架中。

我有一列有许多URL,如下所示。

enter image description here

我需要将这一列拆分在”. “上,任务是得到以下操作。

enter image description here

解决方案:

检查下面的代码。

你可以忽略长度列,它是用来决定最大的列数的。

scala> val df = Seq("www.google.co.kr","jun.artcompsci.org","mstdn.pssy.flab.fujitsu.cojp").toDF("URL")
df: org.apache.spark.sql.DataFrame = [URL: string]

scala> val adf = df.withColumn("url_array",split($"URL","\\.")).withColumn("length",size($"url_array")).orderBy($"length".desc)
adf: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [URL: string, url_array: array<string> ... 1 more field]

scala> val length = adf.select("length").head.getInt(0)
length: Int = 5

scala> adf.select($"*" +: (0 until length).map(i => $"url_array".getItem(i).as(s"col$i")): _*).show(false)
+----------------------------+----------------------------------+------+-----+----------+----+-------+----+
|URL                         |url_array                         |length|col0 |col1      |col2|col3   |col4|
+----------------------------+----------------------------------+------+-----+----------+----+-------+----+
|mstdn.pssy.flab.fujitsu.cojp|[mstdn, pssy, flab, fujitsu, cojp]|5     |mstdn|pssy      |flab|fujitsu|cojp|
|www.google.co.kr            |[www, google, co, kr]             |4     |www  |google    |co  |kr     |null|
|jun.artcompsci.org          |[jun, artcompsci, org]            |3     |jun  |artcompsci|org |null   |null|
+----------------------------+----------------------------------+------+-----+----------+----+-------+----+


给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在不打破每个产品限制的情况下更新购物车中产品的固定数量?

2022-9-9 6:58:18

未分类

重置窗口功能的计数器

2022-9-9 6:58:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索