bag_unpack eklentisi
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini
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
.
Sözdizimi
T|
evaluate
bag_unpack(
Sütunu [,
OutputColumnPrefix ] [,
columnsConflict ] [,
ignoredProperties ] )
[:
OutputSchema]
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
T | string |
✔️ | Sütununun paketten çıkarılacağı tablosal giriş. |
Sütun | dynamic |
✔️ | Paketten çıkarılmayan T sütunu. |
OutputColumnPrefix | string |
Eklenti tarafından üretilen tüm sütunlara eklenecek ortak bir ön ek. | |
columnsConflict | string |
Sütun çakışma çö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 |
Göz ardı edilecek isteğe bağlı bir çanta özellikleri kümesi. } | |
OutputSchema | Eklenti çıkışının beklenen sütunları bag_unpack için adlar ve türler. Beklenen şemanın belirtilmesi, önce şemayı keşfetmek için gerçek sorguyu çalıştırmak zorunda kalmadan sorgu yürütmeyi iyileştirir. Söz dizimi bilgileri için bkz . Çıktı şeması söz dizimi. |
Çıktı ş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 kaydı olan 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ğer türü farklıysa olur.
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.
Eklentinin giriş verileri, çıkış şemasının tablo şeması için tüm kurallara uyması gerekir. Özellikle:
Bir çıkış sütun adı, paketlenecek 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ıdır ve tanımlayıcı adlandırma kurallarına uymalıdır.
Null değerler yoksayılır.
Örnekler
Çantayı genişletme
datatable(d:dynamic)
[
dynamic({"Name": "John", "Age":20}),
dynamic({"Name": "Dave", "Age":40}),
dynamic({"Name": "Jasmine", "Age":30}),
]
| evaluate bag_unpack(d)
Çıktı
Yaş | Ad |
---|---|
20 | John |
40 | Dave |
30 | Yasemin |
OutputColumnPrefix ile bir çantayı genişletme
Bir torbayı OutputColumnPrefix
genişletin ve 'Property_' ön eki ile 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_')
Çıktı
Property_Age | Property_Name |
---|---|
20 | John |
40 | Dave |
30 | Yasemin |
Çantayı sütunlarla genişletmeConflict
Bir torbayı columnsConflict
genişletin ve işleç tarafından bag_unpack()
üretilen mevcut sütunlar 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
Çıktı
Yaş | Ad |
---|---|
20 | John |
40 | Dave |
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
Çıktı
Yaş | Ad |
---|---|
20 | Old_name |
40 | Old_name |
30 | Old_name |
IgnoredProperties ile bir torbayı genişletme
Bir çantayı 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']))
Çıktı
Ad |
---|
John |
Dave |
Yasemin |
Sorgu tanımlı OutputSchema ile bir torbayı genişletme
Bir torbayı genişletin ve gerçek sorguyu OutputSchema
ç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)
Çıktı
Ad | Yaş |
---|---|
John | 20 |
Dave | 40 |
Yasemin | 30 |
Bir torbayı genişletin ve gerçek sorguyu OutputSchema
ç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)
Çıktı
Açıklama | Ad | Yaş |
---|---|---|
Öğrenci | John | 20 |
Öğretmen | Dave | 40 |
Öğrenci | Yasemin | 30 |
İlgili içerik
- parse_json işlevi
- mv-expand işleci