Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks Runtime 18 LTS ve üzerini denetleyin
Important
Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.
FileType SQL FILE tipi için PySpark tipidir; yapılandırılmamış bir dosyaya ve meta verilerine referanstır. Python kullanıcı tanımlı fonksiyonlarda (UDF) parametreleri bildirmek FILE ve türleri döndürmek için kullanın. Python'da bir FILE değer, dosyanın meta verilerini tutan ve baytlarını okuyan bir FileRef nesnedir.
SQL tip referansı ve kavramsal genel bakış için bkz. Tip ve FILE bakınız. Dosya işleme UDF örnekleri için bkz. UDF'lerle dosyaları işlemek.
Uyarı
Bu FILE tür sunucusuz dizüstü bilgisayarlarda desteklenmiyor. Sunucusuz Databricks SQL depolarına bağlı dizüstü bilgisayarlarda desteklenmektedir.
Import
from pyspark.sql.types import FileType, FileRef
DosyaTürü
FileType , öğesinin bir alt sınıfıdır pyspark.sql.types.DataType. Bunu bir UDF'nin parametresi veya dönüş tipi olarak veya şemadaki alan tipi olarak kullanın.
FileType
MANAGED Belirtmez ya EXTERNALda . Bu nitelendirmeler yalnızca FILE bir tablo sütununa uygulanır; burada sütun, bir referansın yönetilip harici mi saklanacağını belirler. Bir UDF referansları geçirir ve döndürür FILE , hedef sütun ise sonucu bir tabloya yazdığınızda her referansın nasıl saklanacağına karar verir.
FileType Aşağıdaki şekillerde kullanabilirsiniz; bunlar SQL ve Scala UDF'ler ile SQL depolanmış prosedürler için de geçerlidir:
- Üst düzey bir tip olarak.
- Bir
StructTypeveyaArrayTypebir içinde yuvalanmış . - Değer türü olarak ,
MapTypeama anahtarMapTypeolarak değil. - Bir
VariantTypeiçinde, ama sadece harici dosyalar için.
Bir sorgu Python'a bir FILE sütun döndürdüğünde, ya UDF içinde ya da içindeDataFrame.collect(), her değer bir FileRef'dır.
FileRef
AFileRef, bir FILEiçin Python değeridir. Dosyanın meta verilerini tutar ve dosyanın baytlarını okuma ile yeni referanslar oluşturma yöntemleri içerir.
Attributes
| Attribute | Türü | Description |
|---|---|---|
uri |
str |
Dosyanın URI'si. Her zaman hazır. |
offset |
int |
Dosyaya bayt cinsinden bir ofset. |
size |
int |
Dosyanın bayt cinsinden boyutu. |
content_type |
str |
Dosyanın MIME türü, bilindiğinde. |
checksum |
str |
Dosyanın baytları için bir bütünlük belirteçesi, biçimindedir <algorithm>:<digest>. Tanınan algoritmalar için bkz. Kontrol Toplamları. |
Methods
| Method | Description |
|---|---|
as_local_file() |
Dosyaya a'yı pathlib.Path geri döndürüyor. Sonucu bir yolu kabul eden herhangi bir kütüphaneye ilet. Available on Azure Databricks compute (notebooks and UDF workers).
Databricks Connect istemcisinde, örneğin IDE veya kodunuzu Azure Databricks hesaplama dışında çalıştıran yerel uygulamalarda bulunmaz. |
open() |
Dosyayı ikili okuma için açar ve bir dosya nesnesi döndürür. Arayan kapatıyor. Hesaplama gereksinimi ile as_local_file()aynı şekilde vardır. |
from_bytes(content, path=None, content_type=None) |
Sınıf yöntemi. Unity content Kataloğu hacim yoluna bytes yükler ve path bir değer döndürürFileRef. Hedef yolda zaten bir dosya varsa başarısız olur. Sadece UDF içinde destekleniyor. |
from_local_file(local_file, path=None, content_type=None) |
Sınıf yöntemi. Bir Unity Kataloğu hamine yerel bir dosya yükler ve bir FileRef. ve pathcontent_type parametreleri ise 'de from_bytesolduğu gibi davranır. Sadece UDF içinde destekleniyor. |
Example
Aşağıdaki kodda, bir skaler UDF FILE değeri alır, görüntüyü FileRefaçar ve boyutlarını döndürür:
from pyspark.sql.functions import col, udf
from pyspark.sql.types import StringType
from PIL import Image
@udf(returnType=StringType())
def image_resolution(file):
with Image.open(file.as_local_file()) as img:
return f"{img.width}x{img.height}"
spark.read.table("images").select(image_resolution(col("photo"))).display()
Daha fazla dosya işleme UDF örneği için, UDTF ile dosya üretme dahil, bkz. UDF ile dosyaları işlemek. Genel UDF yazarlığı için bkz. Python skaler kullanıcı tanımlı fonksiyonlar (UDF'ler) ve Python kullanıcı tanımlı tablo fonksiyonları (UDTF'ler).
Sınırlamalar
PySpark'ta kullanmanın FileType aşağıdaki sınırlamaları vardır:
- PySpark, ilan etmeyi,
FILE MANAGEDsütunları tablolamayı veya dosyaları toplu olarak almayı desteklemezFILE EXTERNAL. Bu işlemler için SQL kullanın. PySpark yalnızca ,FILEyani UDF'lerde ve dosya okumalarındaFileTypedestekler. -
as_local_file()veopen()küme tarafı erişimi gerektirdiği için Databricks Connect istemcisinde mevcut değiller. Bunun yerine UDF veya küme hesaplama üzerinden çağırın. - ve
from_bytesiçinfrom_local_file, Python UDF'lercontent_typeyol uzantısından çıkarımlar yaparken, Scala UDF'ler dosyanın sihirli baytlarından çıkarır. - Bir köşeye
FileRefyazan bir UDF'den geriFILE MANAGEDdönüş yapmak desteklenmiyor.