我想将看起来像列表的输入字符串分割成逗号分隔的字符串。有没有更好的方法可以做到这一点。下面的SQL不会删除括号。
输入:
"['A','B','C']"
输出:
'A','B','C'
SQL:
SELECT Z.str,
SPLIT(Z.str,'\W+') str_new
FROM (
SELECT "['A','B','C']" str ) Z;
答案 0 :(得分:0)
您可以使用regexp_replace()替换字符串中的花括号,然后应用split
SELECT Z.str,
SPLIT(Z.str,'\W+') str_new
FROM (
SELECT regexp_replace("['A','B','C']", "\\[\\d*\\]", "") str ) Z
答案 1 :(得分:0)
对于这样的特殊情况,您可以使用十六进制值。 \ x5b用于“ [”,\ x5d用于“]”。在Hive中,您需要转义\反斜杠。试试这个,对我有用。
> select regexp_replace("['A','B','C']","[\\x5b\\x5d]", "") str ;
+--------------+--+
| str |
+--------------+--+
| 'A','B','C' |
+--------------+--+