explode_outer
表值函数发生器<一个class="headerlink" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/functions/#explode_outer-table-valued-generator-function" title="">
适用于:砖的SQL砖运行时
返回一组由un-nesting行expr
使用外部语义。
语法<一个class="headerlink" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/functions/#syntax" title="">
explode_outer(expr)
参数<一个class="headerlink" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/functions/#arguments" title="">
expr
:数组或地图表达。
返回<一个class="headerlink" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/functions/#returns" title="">
一组行组成的数组的元素或地图的键和值。产生的列explode_outer
一个数组是命名上校
。列的映射称为关键
和价值
。
如果expr
是零
一行与零
年代的数组或映射值。
适用于:砖12.1和更早的运行时:
explode_outer
只能放在选择
列表作为根一个表达式或后<一个class="reference internal" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/sql-ref-syntax-qry-select-lateral-view.html">侧面图。当把函数选择
必须没有其他生成器函数的列表是一样的选择
列表或<一个class="reference internal" href="//www.neidfyre.com/docs.gcp/spark/latest/error-messages/unsupported-generator-error-class.html">UNSUPPORTED_GENERATOR.MULTI_GENERATOR是提高。适用于:砖的SQL砖运行时12.2及以后:
调用的<一个class="reference internal" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/sql-ref-syntax-qry-select-lateral-view.html">侧面图条款或者是
选择
列表是弃用。相反,调用explode_outer
作为一个<一个class="reference internal" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/sql-ref-syntax-qry-select-table-reference.html">table_reference。
例子<一个class="headerlink" href="//www.neidfyre.com/docs.gcp/spark/latest/spark-sql/language-manual/functions/#examples" title="">
适用于:砖12.1和更早的运行时:
>选择explode_outer(数组(10,20.))作为初步的,“火花”;10火花20.火花>选择explode_outer(地图(1,“一个”,2,“b”))作为(全国矿工工会,瓦尔),“火花”;1一个火花2b火花>选择explode_outer(投(零作为数组<int>)),“火花”;零火花>选择explode_outer(数组(1,2)),explode_outer(数组(3,4));错误:UNSUPPORTED_GENERATOR。MULTI_GENERATOR
适用于:砖的SQL砖运行时12.2及以后:
>选择初步的,“火花”从explode_outer(数组(10,20.))作为t(初步的);10火花20.火花>选择全国矿工工会,瓦尔,“火花”从explode_outer(地图(1,“一个”,2,“b”))作为t(全国矿工工会,瓦尔);1一个火花2b火花>选择*从explode_outer(数组(1,2)),explode_outer(数组(3,4));13142324>选择*从explode_outer(投(零作为数组<int>));零——使用横向相关性在砖12.2及以上>选择*从explode_outer(数组(1,2))作为t,横向explode_outer(数组(3*t。上校,4*t。上校));13142628