擅长:python、mysql、java
<p>可以使用regexp_replace删除方括号,然后在逗号上拆分。一开始,我认为你需要做一些特别的事情,以避免在花括号内的逗号上分裂。但是spark似乎自动避免了sql。例如,Zeppelin中的以下查询</p>
<pre><code>%sql
select split(regexp_replace("[{somevalues, id:1, name:'xyz'}, {address:Some Value}, {somevalue}]", "[\\[\\] ]", ""), ",")
</code></pre>
<p>给了我</p>
^{pr2}$
<p>这就是你想要的。在</p>
<p>如果使用数据帧,则可以使用withColumn以这种方式添加列。由于某些原因,如果大括号内的逗号被拆分,您可以像下面的post-<a href="https://stackoverflow.com/questions/39565349/regex-match-only-outside-parenthesis-so-that-the-text-isnt-split-within-paren">Regex: match only outside parenthesis (so that the text isn't split within parenthesis)?</a>那样做更多的regex foo。在</p>
<p>希望这是有道理的。我不确定您是否在使用数据帧,但建议您使用较低级别的RDDAPI。在</p>