删除配置单元列的前导字符和尾随字符

nimxete2  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(461)

我有一个配置单元列,它在列中有未知数量的前导双引号和尾随双引号。该列在数据中也有双引号。
例如,列如下所示

我想输出如下

我已经写了一个pyspark代码,在那里我可以剥离“和它的工作,但我想在hql的解决方案。我也尝试过regexp\u替换

regexp_replace(test,'^"|^""|""$|"$', "")

但这是一种硬编码。有人能提供一个通用的解决方案吗?

ulmd4ohb

ulmd4ohb1#

试试这个-

val df = spark.sql("select '\"\"\"56\"7\"' as test")
    df.show(false)
    /**
      * +--------+
      * |test    |
      * +--------+
      * |"""56"7"|
      * +--------+
      */
    df.createOrReplaceTempView("table")
    spark.sql("select test, regexp_replace(test, '^\"+|\"+$', '') as test_new from table")
      .show(false)

    /**
      * +--------+--------+
      * |test    |test_new|
      * +--------+--------+
      * |"""56"7"|56"7    |
      * +--------+--------+
      */

相关问题