scala - 将网站 url 拆分为多列到 scala 数据框
解决方案
检查下面的代码。
您可以忽略长度列,它用于决定最大列数
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|
+----------------------------+----------------------------------+------+-----+----------+----+-------+----+
推荐阅读
- oracle - 存储过程错误上的Oracle序列号错误
- vb.net - Microsoft.Office.Interop.Word.Shapes.AddPicture 比例图像处理
- java - 程序类型已经存在:org.codehaus.jackson
- javascript - 删除具有所述孩子 ID 的孩子的孩子
- node.js - 树莓派 3b+ 节点应用程序自动更新和重启应用程序
- javascript - 每次单击按钮后,值不会一一存储在数组中
- javascript - JavaScript - scrollIntoView() 仅适用于 Firefox
- amazon-web-services - Lambda S3 权限
- android - Android Studio 代理设置未设置代理,但仍启用代理
- ios - 是否可以在 siri 快捷方式意图定义文件中添加自定义类别?