替换Hive表中所有列的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换Hive表中所有列的字符相关的知识,希望对你有一定的参考价值。

我需要在我的Hive表中的所有列上执行正则表达式替换功能。有没有办法在不调出每列的情况下对所有列执行操作?

答案

使用regexp_replace。以下是Hive REGEXP_REPLACE函数的语法。 regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT);

另一答案
    val col : DataFrame = hiveContext.sql("show columns in dbname.table_name")
    val arry  = col.collectAsList().toArray

    def regexpReplace(x: AnyRef): String =
    return "select regexp_replace(" + x + ",[^0-9a-zA-Z]," + "' ')  from dbname.tbl_name"

  for(  col <- arry)
    {
      val res = regexpReplace(col.toString.substring(1,x.toString.length-1))
      sqlContext.sql(res)
    }

以上是关于替换Hive表中所有列的字符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hive 中将列的空白值替换为 [null] 以计算 SUM

hive怎样取出字段包含的所有特殊字符

用另一个表中同一列的值替换列中的字符串值

在 SQL Server 中替换整个表中的字符

如何删除单元格 Hive 表中的重复值

如何将一个表中列的每个不同值映射到 Hive 中另一个表中列的每个不同值