替换配置单元表中所有列中的字符

szqfcxe2  于 2021-06-24  发布在  Hive
关注(0)|答案(2)|浏览(296)

我需要对配置单元表中的所有列执行regex replace函数。有没有一种方法可以对所有列执行操作而不单独调用每一列?

0yycz8jy

0yycz8jy1#

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)
    }
whhtz7ly

whhtz7ly2#

使用regexp\u替换。下面是hive regexp\u replace函数的语法。 regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT);

相关问题