Aracılığıyla paylaş


inline_outer tablo değerli üreteç fonksiyonu

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Yapı dizisini, OUTER semantiği ile bir tabloya genişletir.

Databricks SQL ve Databricks Runtime 16.1 ve üzerinde, adlandırılmış parametre çağrısını destekler.

Söz dizimi

inline_outer(input)

Bağımsız değişkenler

  • input: ARRAY < STRUCT > ifadesi.

dizinin yapı öğelerindeki alanlardan oluşan bir satır kümesi input. inline tarafından üretilen sütunlar alanların adlarıdır.

Eğer inputNULL ise, her sütun için NULLiçeren tek bir satır oluşturulur.

  • Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks Runtime 12.1 ve öncesi:

    inline_outer yalnızca SELECT listesine bir ifadenin kökü olarak ya da bir LATERAL VIEW'nin ardından yerleştirilebilir. İşlevi SELECT listesine yerleştirirken, aynı SELECT listesinde başka bir oluşturucu işlevi olmamalıdır; aksi takdirde UNSUPPORTED_GENERATOR.MULTI_GENERATOR hatası oluşturulur.

  • Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri:

    LATERAL VIEW yan tümcesinden veya SELECT listesinden çağrı artık kullanılmıyor. Bunun yerine table_referenceinline_outerçağırabilirsiniz.

Örnekler

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks Runtime 12.1 ve öncesi:

> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL

> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
         'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri:

> SELECT i.*, 'Spark SQL'
    FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL

> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
 1      a       c       1.0     Spark SQL
 1      b       c       1.0     Spark SQL
 1      a       d       2.0     Spark SQL
 1      b       d       2.0     Spark SQL