程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 spark 从所有列中删除空格大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 spark 从所有列中删除空格?

开发过程中遇到使用 spark 从所有列中删除空格的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 spark 从所有列中删除空格的解决方法建议,希望对你解决使用 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 替换为 _,我进行了以下更改:

  • 获取所有字符串类型的列,以避免在执行字符串操作时出现异常。
  • foreach 字符串类型列将 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,请注明来意。