非常简单。我有一个编码为字符串(getSound
)的类似数组的列,并想将其强制转换为arguments[0]
(这样我就可以varchar
对其进行处理,并以“长”格式操作元素)
两种最自然的方法似乎无效:
array
得到我想要的东西的丑陋/模糊/ circuit回的方式是:
explode
({-- just returns a length-1 array with a single string element '[1, 2, 3]'
select array('[1, 2, 3]')
-- errors: DataType array is not supported.
select cast('[1, 2, 3]' as array)
可以包含两个select explode(split(replace(replace('[1, 2, 3]', '['), ']'), ', '))
-- '1'
-- '2'
-- '3'
,但带有方括号的正则表达式总是很麻烦;也可以使用regexp_replace
和replace
或ltrim
)
有没有更简洁的方法可以解决这个问题?我正在使用Spark 2.3.1。
答案 0 :(得分:-1)
我在这里假设元素是数字。但是你知道了
BaseException