大佬教程收集整理的这篇文章主要介绍了使用 spark 从所有列中删除空格,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些列的数据框:
+------+-------------+------+---------------+--------------+
|CustID| name|Salary| State| Country|
+------+-------------+------+---------------+--------------+
| 1| Brad Eason| 100|New South Wales| Australia|
| 2|Tracy Hopkins| 200| England|United Kingdom|
| 3| Todd Boyes| 300| England|United Kingdom|
| 4| Roy Phan| 400| Minnesota| United States|
| 5| Harold Ryan| 500| Washington| United States|
+------+-------------+------+---------------+--------------+
要将字符串列的所有 space
替换为 _
,我进行了以下更改:
SPACE
替换为 _
。import org.apache.spark.sql.types.StringType
val trimcolumns=customers.scheR_660_11845@a.fIElds.filter(_.dataType.isinstanceOf[StringType])
val arrayOfDf = trimcolumns.map(f=>{
customers.withcolumn(f.name,regexp_replace(col(f.Name)," ","_"))
})
上面的代码产生了一个数据帧数组,每个元素中都有字符串列的有效数据。
scala> arrayOfDf(1).SELEct("name").show(4)
+-------------+
| name|
+-------------+
| Brad_Eason|
|Tracy_Hopkins|
| Todd_Boyes|
| Roy_Phan|
+-------------+
现在我需要从数组的第一个元素中选取第一列,从数组的第二个元素中选取第二列,依此类推...
这种方法有没有更好的方法?
使用 arrayOfDf
代替 foldleft
逻辑,如下所示。
val outputDf = trimcolumns.foldLeft(df)((agg,tf) =>
agg.withcolumn(tf.name,regexp_replace(col(tf.Name)," ","_"))
)
输出将是:
+------+-------------+------+---------------+--------------+
|CustId| Name|Salary| State| Country|
+------+-------------+------+---------------+--------------+
| 1| Brad_Eason| 100|New South_Wales| Australia|
| 2|Tracy_Hopkins| 200| England|United_Kingdom|
| 3| Todd_Boyes| 300| England|United_Kingdom|
| 4| Roy_Phan| 400| Minnesota| United_States|
| 5| Harold_Ryan| 500| Washington| United_States|
+------+-------------+------+---------------+--------------+
以上是大佬教程为你收集整理的使用 spark 从所有列中删除空格全部内容,希望文章能够帮你解决使用 spark 从所有列中删除空格所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。