bag_unpack eklentisi
Eklenti, bag_unpack
her özellik paketi üst düzey yuvasını sütun olarak değerlendirerek türünde dynamic
tek bir sütunu açar. Eklenti işleciyle birlikte çağrılır evaluate
.
Syntax
T|
evaluate
bag_unpack(
Sütun [,
OutputColumnPrefix ] [,
columnsConflict ] [,
ignoredProperties ] )
[:
OutputSchema]
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
T | string |
✔️ | Sütunu paketten çıkarılacak olan tablosal giriş. |
Sütun | dynamic |
✔️ | Açılmak için T sütunu. |
OutputColumnPrefix | string |
Eklenti tarafından üretilen tüm sütunlara eklenecek ortak bir ön ek. | |
columnsConflict | string |
Sütun çakışması çözümlemesinin yönü. Geçerli değerler:error - Sorgu hata üretir (varsayılan)replace_source - Kaynak sütun değiştirildikeep_source - Kaynak sütun tutulur |
|
ignoredProperties | dynamic |
Yoksayılacak isteğe bağlı bir paket özellikleri kümesi. } | |
OutputSchema | Eklenti çıkışının beklenen sütunları bag_unpack için adlar ve türler. Beklenen şemanın belirtilmesi, şemayı keşfetmek için önce gerçek sorguyu çalıştırmak zorunda kalmadan sorgu yürütmeyi iyileştirir. Söz dizimi bilgileri için bkz . Çıkış şeması söz dizimi. |
Çıkış şeması söz dizimi
(
Columnname:
ColumnType [,
...] )
Giriş tablosunun tüm sütunlarını eklenti çıkışına eklemek için, ilk parametre olarak aşağıdaki gibi bir joker karakter *
kullanın:
(
*
,
Columnname:
ColumnType [,
...] )
Döndürülenler
Eklenti, bag_unpack
tablosal girişi (T) kadar kayıt içeren bir tablo döndürür. Tablonun şeması, aşağıdaki değişikliklerle tablosal girişinin şemasıyla aynıdır:
- Belirtilen giriş sütunu (Sütun) kaldırılır.
- Şema, T'nin en üst düzey özellik paketi değerlerinde ayrı yuvalar olduğu kadar çok sütunla genişletilir. Her sütunun adı, isteğe bağlı olarak OutputColumnPrefix ön ekine sahip olan her yuvanın adına karşılık gelir. Türü, aynı yuvanın tüm değerleri aynı türe sahipse yuvanın türü veya
dynamic
değerler türünde farklıysa türüdür.
Not
OutputSchema belirtilmezse, eklentinin çıkış şeması giriş veri değerlerine göre değişir. Bu nedenle, eklentinin farklı veri girişleri kullanılarak birden çok yürütülmesi farklı çıkış şeması üretebilir.
Not
Eklentinin giriş verileri, çıkış şemasının tablo şeması için tüm kurallara uyması gerekir. Özellikle:
Bir çıkış sütun adı, paketten çıkarılacak sütun (Sütun) olmadığı sürece tablosal giriş T'deki mevcut sütunla aynı olamaz, çünkü bu aynı ada sahip iki sütun oluşturur.
OutputColumnPrefix öneki eklendiğinde tüm yuva adları geçerli varlık adları olmalı ve tanımlayıcı adlandırma kurallarına uymalıdır.
Örnekler
Bir torbayı genişletme
datatable(d:dynamic)
[
dynamic({"Name": "John", "Age":20}),
dynamic({"Name": "Dave", "Age":40}),
dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d)
Çıkış
Yaş | Name |
---|---|
20 | John |
40 | Demirci |
30 | Yasemin |
OutputColumnPrefix ile bir torbayı genişletme
Bir torbayı OutputColumnPrefix
genişletin ve 'Property_' ön ekiyle başlayan sütun adları oluşturmak için seçeneğini kullanın.
datatable(d:dynamic)
[
dynamic({"Name": "John", "Age":20}),
dynamic({"Name": "Dave", "Age":40}),
dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d, 'Property_')
Çıkış
Property_Age | Property_Name |
---|---|
20 | John |
40 | Demirci |
30 | Yasemin |
Sütun içeren bir torbayı genişletmeConflict
Bir torbayı columnsConflict
genişletin ve işleç tarafından bag_unpack()
üretilen mevcut sütun ve sütunlar arasındaki çakışmaları çözmek için seçeneğini kullanın.
datatable(Name:string, d:dynamic)
[
'Old_name', dynamic({"Name": "John", "Age":20}),
'Old_name', dynamic({"Name": "Dave", "Age":40}),
'Old_name', dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d, columnsConflict='replace_source') // Use new name
Çıkış
Yaş | Name |
---|---|
20 | John |
40 | Demirci |
30 | Yasemin |
datatable(Name:string, d:dynamic)
[
'Old_name', dynamic({"Name": "John", "Age":20}),
'Old_name', dynamic({"Name": "Dave", "Age":40}),
'Old_name', dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d, columnsConflict='keep_source') // Keep old name
Çıkış
Yaş | Name |
---|---|
20 | Old_name |
40 | Old_name |
30 | Old_name |
IgnoredProperties ile bir torbayı genişletme
Bir torbayı genişletin ve özellik paketindeki ignoredProperties
belirli özellikleri yoksaymak için seçeneğini kullanın.
datatable(d:dynamic)
[
dynamic({"Name": "John", "Age":20, "Address": "Address-1" }),
dynamic({"Name": "Dave", "Age":40, "Address": "Address-2"}),
dynamic({"Name": "Jasmine", "Age":30, "Address": "Address-3"}),
]
// Ignore 'Age' and 'Address' properties
| evaluate bag_unpack(d, ignoredProperties=dynamic(['Address', 'Age']))
Çıkış
Name |
---|
John |
Demirci |
Yasemin |
Sorgu tanımlı OutputSchema ile bir paketi genişletme
Bir torbayı OutputSchema
genişletin ve gerçek sorguyu çalıştırmadan önce çeşitli iyileştirmelerin değerlendirilmesine izin vermek için seçeneğini kullanın.
datatable(d:dynamic)
[
dynamic({"Name": "John", "Age":20}),
dynamic({"Name": "Dave", "Age":40}),
dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d) : (Name:string, Age:long)
Çıkış
Name | Yaş |
---|---|
John | 20 |
Demirci | 40 |
Yasemin | 30 |
Bir torbayı OutputSchema
genişletin ve gerçek sorguyu çalıştırmadan önce çeşitli iyileştirmelerin değerlendirilmesine izin vermek için seçeneğini kullanın. Giriş tablosunun tüm sütunlarını döndürmek için joker karakter *
kullanın.
datatable(d:dynamic, Description: string)
[
dynamic({"Name": "John", "Age":20}), "Student",
dynamic({"Name": "Dave", "Age":40}), "Teacher",
dynamic({"Name": "Jasmine", "Age":30}), "Student",
]
| evaluate bag_unpack(d) : (*, Name:string, Age:long)
Çıkış
Açıklama | Ad | Yaş |
---|---|---|
Öğrenci | John | 20 |
Öğretmen | Demirci | 40 |
Öğrenci | Yasemin | 30 |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin