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.
tablo değerli fonksiyon
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 13.3 LTS ve üzeri
Sağlanan bir konum altındaki dosyaları okur ve verileri tablo biçiminde döndürür.
JSON, CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO ve ORC dosya biçimlerini okumayı destekler.
Dosya biçimini otomatik olarak algılayabilir ve tüm dosyalar arasında birleşik bir şema çıkarsayabilirsiniz.
Söz dizimi
read_files(path [, option_key => option_value ] [...])
Argümanlar
Bu işlev, seçenek anahtarları için adlandırılmış parametre çağırması gerektirir.
-
path: Verilerin konumunun URI'sine sahip ASTRING. Azure Data Lake Storage ('abfss://'), S3 (s3://) ve Google Cloud Storage 'dan ('gs://') okumayı destekler. Glob içerebilir. Diğer ayrıntılar için bkz . Dosya bulma . -
option_key: Yapılandırılan seçeneğin adı. Backticks () for options that contain dots (.`) kullanmanız gerekir. -
option_value: Seçeneğin ayarlanacağı sabit ifade . Sabitleri ve skaler işlevleri kabul eder.
İadeler
Verilen pathaltında okunan dosyalardan verileri içeren bir tablo. Şema, dosya biçimine bağlıdır:
BINARYFILE: Sabit bir şema döndürür:Köşe yazısı Türü Açıklama pathSTRINGDosyanın bulunduğu tam yol. modificationTimeTIMESTAMPDosyanın son değişiklik zamanı. lengthLONGDosyanın bayt cinsinden boyutu. contentBINARYDosyanın ikili içeriği. Dosya meta verilerini sorgularken ikili içeriği dışlamak için kullanın * EXCEPT (content).TEXT: TekvalueSTRING() sütunlu sabit bir şema döndürür.Diğer tüm biçimler (JSON, CSV, XML, PARQUET, AVRO, ORC): Şema dosya içeriğinden çıkarılır veya açıkça seçeneği kullanılarak
schemasağlanır.
_metadata Sütun
read_files dosya düzeyinde meta verileri olan bir _metadata sütunu kullanıma sunar. Bu sütun sonuçlara SELECT * dahil değildir ve açıkça seçilmelidir. Aşağıdaki alanları içerir:
| Alan | Türü | Açıklama |
|---|---|---|
file_path |
STRING |
Kaynak dosyanın tam yolu. |
file_name |
STRING |
Kaynak dosyanın adı. |
file_size |
LONG |
Kaynak dosyanın bayt cinsinden boyutu. |
file_modification_time |
TIMESTAMP |
Kaynak dosyanın son değişiklik zamanı. |
file_block_start |
LONG |
Okunan dosya bloğunun başlangıcı. |
file_block_length |
LONG |
Okunan dosya bloğunun uzunluğu. |
Sonuçlara eklemek _metadata için açıkça seçin:
SELECT * EXCEPT (content), _metadata
FROM read_files('/Volumes/my_catalog/my_schema/my_volume', format => 'binaryFile');
Dosya bulma
read_files tek bir dosyayı okuyabilir veya sağlanan bir dizin altındaki dosyaları okuyabilir.
read_files sağlanan dizin altındaki tüm dosyaları özyinelemeli olarak bulur, ancak eğer bir glob sağlanırsa, read_files belirli bir dizin desenine özyineleme talimatı alır.
Glob desenlerini kullanarak dizinleri veya dosyaları filtreleme
Glob desenleri, yolda yer aldığında dizinleri ve dosyaları filtrelemek için kullanılabilir.
| Desen | Açıklama |
|---|---|
? |
Herhangi bir tek karakterle eşleşir |
* |
Sıfır veya daha çok sayıda karakterle eşleşir |
[abc] |
{a,b,c} karakter kümesindeki tek bir karakterle eşleşir. |
[a-z] |
{a…z} aralığındaki tek bir karakterle eşleşir. |
[^a] |
{a} karakter kümesinden veya aralıktan olmayan tek bir karakterle eşleşir. Karakter ^ açılış ayraçının hemen sağında yer almalıdır, unutmayın. |
{ab,cd} |
{ab, cd} dize kümesindeki bir dizeyle eşleşir. |
{ab,c{de, fh}} |
{ab, cde, cfh} dize kümesindeki bir dizeyle eşleşir. |
read_files glob içeren dosyaları keşfederken Otomatik Yükleyici'nin sıkı globber'ını kullanır. Bu, useStrictGlobber seçeneğiyle yapılandırılır. Katı globber devre dışı bırakıldığında, sondaki eğik çizgiler (/) görmezden gelinir ve /*/ gibi bir yıldız deseni birçok dizini keşfetmek için genişleyebilir. Davranış farkını görmek için aşağıdaki örneklere bakın.
| Desen | Dosya yolu | Katı globber devre dışı | Sıkı globber modu etkinleştirildi |
|---|---|---|---|
/a/b |
/a/b/c/file.txt |
Evet | Evet |
/a/b |
/a/b_dir/c/file.txt |
Hayır | Hayır |
/a/b |
/a/b.txt |
Hayır | Hayır |
/a/b/ |
/a/b.txt |
Hayır | Hayır |
/a/*/c/ |
/a/b/c/file.txt |
Evet | Evet |
/a/*/c/ |
/a/b/c/d/file.txt |
Evet | Evet |
/a/*/d/ |
/a/b/c/d/file.txt |
Evet | Hayır |
/a/*/c/ |
/a/b/x/y/c/file.txt |
Evet | Hayır |
/a/*/c |
/a/b/c_file.txt |
Evet | Hayır |
/a/*/c/ |
/a/b/c_file.txt |
Evet | Hayır |
/a/*/c |
/a/b/cookie/file.txt |
Evet | Hayır |
/a/b* |
/a/b.txt |
Evet | Evet |
/a/b* |
/a/b/file.txt |
Evet | Evet |
/a/{0.txt,1.txt} |
/a/0.txt |
Evet | Evet |
/a/*/{0.txt,1.txt} |
/a/0.txt |
Hayır | Hayır |
/a/b/[cde-h]/i/ |
/a/b/c/i/file.txt |
Evet | Evet |
Şema çıkarımı
Dosyaların şeması, read_files'a schema seçeneği ile açıkça sağlanabilir. Şema sağlanmadığında, read_files bulunan dosyalar arasında birleşik bir şema çıkarsamaya çalışır ve bu da bir LIMIT deyimi kullanılmadığı sürece tüm dosyaların okunmasını gerektirir.
LIMIT sorgusu kullanırken bile verilerin daha temsili bir şemasını döndürmek için gerekenden daha büyük bir dosya kümesi okunabilir. Databricks, bir kullanıcı sağlamıyorsa not defterleri ve SQL düzenleyicisindeki LIMIT sorguları için otomatik olarak bir SELECT deyim ekler.
schemaHints seçeneği, çıkarsanan şemanın alt kümelerini düzeltmek için kullanılabilir. Daha fazla ayrıntı için bkz. Şema çıkarımlarını şema ipuçlarıyla geçersiz kılma.
rescuedDataColumn varsayılan olarak, şemayla eşleşmeyen verileri kurtarmak amacıyla sağlanır. Bkz. Kurtarılan veri sütunu nedir? Daha fazla bilgi için.
rescuedDataColumn seçeneğini ayarlayarak schemaEvolutionMode => 'none' öğesini bırakabilirsiniz.
Bölüm şeması çıkarımı
read_files dosyalar Hive stili bölümlenmiş dizinler altında veya depolanıyorsa, /column_name=column_value/ de çıkarabilir. Eğer bir schema sağlanırsa, tespit edilen bölüm sütunları schemaiçinde sağlanan türleri kullanır. Eğer bölümleme sütunları sağlanan schema'a dahil değilse, çıkarılan bölümleme sütunları göz ardı edilir.
Hem bölüm şemasında hem de veri sütunlarında bir sütun varsa, veri değeri yerine bölüm değerinden okunan değer kullanılır. Dizinden gelen değerleri yoksaymak ve veri sütununu kullanmak istiyorsanız, partitionColumns seçeneğiyle virgülle ayrılmış bir listedeki bölüm sütunlarının listesini sağlayabilirsiniz.
partitionColumns seçeneği, read_files'e hangi bulunan sütunların son çıkarılan şemaya dahil edileceğini belirtmek için de kullanılabilir. Boş bir dize sağlanması, tüm bölüm sütunlarını göz ardı eder.
schemaHints seçeneği, bir bölüm sütunu için belirlenen şemayı geçersiz kılmak amacıyla da sağlanabilir.
TEXT ve BINARYFILE biçimleri sabit bir şemaya sahiptir, ancak read_files mümkün olduğunda bu biçimler için bölümleme çıkarımını da dener.
Bulut depolama için kimlik doğrulaması
read_files Unity Kataloğu dış konumları aracılığıyla bulut depolamaya erişir. Okumak istediğiniz dosyaları içeren dış konumda ayrıcalığınız olmalıdır READ FILES . Bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamasına bağlanma.
Akış tablolarında kullanım
read_files, dosyaları Delta Lake'e almak için akış tablolarında kullanılabilir.
read_files akış tablosu sorgusunda kullanıldığında Otomatik Yükleyici'yi kullanır. anahtar sözcüğünü STREAM ile read_fileskullanmanız gerekir. Diğer ayrıntılar için bkz. Otomatik Yükleyici nedir?
Bir akış sorgusunda kullanıldığında, read_files şemayı çıkarsamak için verilerin bir örneğini kullanır ve daha fazla veri işledikçe şemayı geliştirebilir. Daha fazla bilgi için Otomatik Yükleyici'de şema çıkarımı ve evrimini yapılandırma hakkında 'a bakın.
Seçenekler
- Temel Seçenekler
- Genel seçenekler
-
JSONSeçenekler -
CSVSeçenekler -
XMLSeçenekler -
PARQUETSeçenekler -
AVROSeçenekler -
BINARYFILESeçenekler -
TEXTSeçenekler -
ORCSeçenekler - Akış seçenekleri
Temel Seçenekler
| Seçenek |
|---|
formatTür: StringKaynak yoldaki veri dosyası biçimi. Sağlanmazsa otomatik olarak çıkarım yapılır. İzin verilen değerler şunlardır:
Varsayılan değer: Yok |
schemaTür: StringOkunacak dosyaların şeması. DDL biçimini kullanarak bir şema dizesi sağlayın, örneğin 'id int, ts timestamp, event string'. Şema sağlanmadığında, read_files bulunan dosyalar arasında birleşik bir şema çıkarılmaya çalışılır.Varsayılan değer: Yok |
inferColumnTypesTür: BooleanŞema çıkarımı kullanıldığında tam sütun türlerinin çıkarılıp çıkarılmayacağı. Varsayılan olarak, JSON ve CSV veri kümeleri çıkarılırken sütunlar çıkarımlanır. Daha fazla bilgi için bkz. şema çıkarımı Varsayılan değer: true |
partitionColumnsTür: StringDosya dizin yapısından çıkarımını yapmak istediğiniz Hive tarzı bölüm sütunlarının, virgülle ayrılmış bir listesini belirtiniz. Hive stili bölüm sütunları, anahtar-değer çiftlerinin eşitlik işaretiyle birleştirilmesi şeklindedir. <base-path>/a=x/b=1/c=y/file.format. Bu örnekte bölüm sütunları a, bve c. Varsayılan olarak, şema çıkarımı kullanıyorsanız ve veri yüklemek için <base-path> sağlıyorsanız bu sütunlar şemanıza otomatik olarak eklenir. Bir şema sağlarsanız, Otomatik Yükleyici bu sütunların şemaya eklenmesini bekler. Bu sütunları şemanızın bir parçası olarak istemiyorsanız, bu sütunları yoksaymak için "" belirtebilirsiniz. Ayrıca, aşağıdaki örnekte olduğu gibi sütunların karmaşık dizin yapılarında dosya yolunun çıkarılmasını istediğinizde bu seçeneği kullanabilirsiniz:<base-path>/year=2022/week=1/file1.csv<base-path>/year=2022/month=2/day=3/file2.csv<base-path>/year=2022/month=2/day=4/file3.csvcloudFiles.partitionColumns olarak belirtilmesi year,month,day döndürülecekyear=2022için file1.csv, ama month ve day sütunları nullolacak.month ve dayfile2.csv ve file3.csv için doğru şekilde ayrıştırılır.Varsayılan değer: Yok |
schemaHintsTür: StringŞema çıkarımı sırasında Otomatik Yükleyici'ye sağladığınız şema bilgileri. Daha fazla ayrıntı için bkz. şema ipuçları Varsayılan değer: Yok |
useStrictGlobberTür: BooleanApache Spark'taki diğer dosya kaynaklarının varsayılan globbing davranışıyla eşleşen katı bir globber kullanıp kullanmayacağınız. Diğer ayrıntılar için bkz . Yaygın veri yükleme desenleri . Databricks Runtime 12.2 LTS ve üzerinde kullanılabilir. Bunun Otomatik Yükleyici için varsayılanın tersi olduğunu unutmayın. Varsayılan değer: true |
Genel seçenekler
Aşağıdaki seçenekler tüm dosya biçimleri için geçerlidir.
| Seçenek |
|---|
ignoreCorruptFilesTür: BooleanBozuk dosyaları yoksaymak isteyip istemediğiniz. True ise, Bozuk dosyalarla karşılaşıldığında Spark işleri çalışmaya devam eder ve okunan içerik yine döndürülür. olarak numSkippedCorruptFiles içinde gözlemlenebilirDelta Lake geçmişinin operationMetrics numaralı sütunu. Databricks Runtime 11.3 LTS ve üzerinde kullanılabilir.Varsayılan değer: false |
ignoreMissingFilesTür: BooleanEksik dosyaları yoksayma tercihinde bulunma. Doğruysa, Spark işleri eksik dosyalarla karşılaşıldığında çalışmaya devam eder ve okunan içerik yine döndürülür. Databricks Runtime 11.3 LTS ve üzerinde kullanılabilir. Varsayılan değer: Otomatik Yükleyici için false, true için COPY INTO (eski) |
modifiedAfterTür: Timestamp String, örneğin, 2021-01-01 00:00:00.000000 UTC+0Yalnızca sağlanan zaman damgasından sonra değişiklik zaman damgasına sahip dosyaları almak için filtre olarak isteğe bağlı bir zaman damgası. Varsayılan değer: Yok |
modifiedBeforeTür: Timestamp String, örneğin, 2021-01-01 00:00:00.000000 UTC+0Yalnızca sağlanan zaman damgasından önce değişiklik zaman damgasına sahip dosyaları almak için filtre olarak isteğe bağlı bir zaman damgası. Varsayılan değer: Yok |
pathGlobFilter veya fileNamePatternTür: StringDosya seçmeye yönelik olası bir glob deseni. Eşdeğer PATTERN, COPY INTO olarak (eski).
fileNamePattern içinde read_fileskullanılabilir.Varsayılan değer: Yok |
recursiveFileLookupTür: BooleanBu seçenek, adları date=2019-07-01 gibi bir bölüm adlandırma düzenini izlemese bile iç içe geçmiş dizinlerde arama yapar. Varsayılan değer: false |
JSON Seçenekler
| Seçenek |
|---|
allowBackslashEscapingAnyCharacterTür: BooleanTers eğik çizginin başarılı olan herhangi bir karakterden kaçmasına izin verilip verilmeyeceği. Etkin hale getirilmediğinde, yalnızca JSON spesifikasyonu tarafından açıkça listelenen karakterler kaçabilir. Varsayılan değer: false |
allowCommentsTür: BooleanAyrıştırılmış içerik içinde Java, C ve C++ stil açıklamalarının ( '/', '*' ve '//' çeşitleri) kullanılmasına izin verilip verilmeyeceği.Varsayılan değer: false |
allowNonNumericNumbersTür: BooleanBir sayı olmayan ( NaN) belirteç kümesinin yasal kayan sayı değerleri olarak izin verilip verilmeyeceği.Varsayılan değer: true |
allowNumericLeadingZerosTür: Booleanİntegral sayıların ek (yoksayılabilir) sıfırlarla başlamasına izin verilip verilmeyeceği (örneğin, 000001).Varsayılan değer: false |
allowSingleQuotesTür: BooleanDizeleri (adlar ve Dize değerleri) alıntılama için tek tırnak (kesme işareti, karakter '\') kullanımına izin verilip verilmeyeceği.Varsayılan değer: true |
allowUnquotedControlCharsTür: BooleanJSON dizelerinin, sekme ve satır besleme karakterleri dahil olmak üzere ASCII değeri 32'den küçük kaçışsız denetim karakterleri içermesine izin verilip verilmeyeceği. Varsayılan değer: false |
allowUnquotedFieldNamesTür: BooleanTırnaksız alan adlarının (JavaScript tarafından izin verilen, ancak JSON belirtimi tarafından izin verilmeyen) kullanımına izin verilip verilmeyeceği. Varsayılan değer: false |
badRecordsPathTür: StringHatalı JSON kayıtları hakkındaki bilgileri kaydetmek için dosyaları depolama yolu. badRecordsPath Dosya tabanlı veri kaynağında seçeneğinin kullanılması aşağıdaki sınırlamalara sahiptir:
Varsayılan değer: Yok |
columnNameOfCorruptRecordTür: StringHatalı biçimlendirilmiş ve ayrıştırılamayan kayıtları depolama sütunu. Ayrıştırma için modeDROPMALFORMEDolarak ayarlanırsa, bu sütun boş olur.Varsayılan değer: _corrupt_record |
dateFormatTür: StringTarih dizelerini ayrıştırma formatı. Varsayılan değer: yyyy-MM-dd |
dropFieldIfAllNullTür: BooleanŞema çıkarımı sırasında, tümüyle null değerler veya boş diziler ve yapılar içeren sütunların yoksayılıp yoksayılmayacağı konusu. Varsayılan değer: false |
encoding veya charsetTür: StringJSON dosyalarının kodlama adı. Seçenekler listesi için bkz. java.nio.charset.Charset.
UTF-16 ile UTF-32multilinetrue olduğunda kullanamazsınız.Varsayılan değer: UTF-8 |
inferTimestampTür: BooleanZaman damgası dizelerinin bir TimestampType olarak yorumlanıp yorumlanmayacağı. Bu şekilde ayarlandığındatrue, şema çıkarımı önemli ölçüde daha uzun sürebilir.
cloudFiles.inferColumnTypes'ı Otomatik Yükleyici ile kullanmak için etkinleştirmeniz gerekir.Varsayılan değer: false |
lineSepTür: StringArdışık iki JSON kaydı arasındaki dize. Varsayılan değer: Hiçbiri; \r, \r\n ve \n'yi kapsar |
localeTür: Stringjava.util.Locale tanımlayıcısı. JSON içinde varsayılan tarih, zaman damgası ve ondalık ayrıştırma işlemini etkiler.Varsayılan değer: US |
modeTür: StringHatalı biçimlendirilmiş kayıtları işleme konusunda ayrıştırıcı modu. PERMISSIVE, DROPMALFORMEDveya FAILFAST.Varsayılan değer: PERMISSIVE |
multiLineTür: BooleanJSON kayıtlarının birden çok satıra yayılıp yayılmadığı. Varsayılan değer: false |
prefersDecimalTür: BooleanMümkün olduğunda float veya double türleri yerine dizeler olarak DecimalType çıkarsamaya çalışır. Şema çıkarımı yapmanız da gerekir, ya etkinleştirerekinferSchema kullanarak veya Otomatik Yükleyici ile cloudFiles.inferColumnTypes kullanma.Varsayılan değer: false |
primitivesAsStringTür: BooleanSayılar ve boole'lar gibi ilkel türlerin olarak StringType çıkarılıp çıkarılmayacağı.Varsayılan değer: false |
readerCaseSensitiveTür: BooleanEtkinleştirildiğinde rescuedDataColumn büyük/küçük harf duyarlılığı davranışını belirtir. Eğer doğruysa, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harf duyarlılığı olmadan okuyun. Databricks Runtime'da kullanılabilir13.3 ve üzeri. Varsayılan değer: true |
rescuedDataColumnTür: StringVeri türü uyuşmazlığı veya şema uyuşmazlığı (sütun kasası dahil) nedeniyle ayrıştırılmayan tüm verilerin ayrı bir sütuna toplanıp toplanmayacağı. Bu sütun, Otomatik Yükleyici kullanılırken varsayılan olarak eklenir. Daha fazla ayrıntı için Kurtarılan veri sütunu nedir? konusuna bakın.. COPY INTO (eski), COPY INTOkullanarak şemayı el ile ayarlayamadığınızdan kurtarılan veri sütununu desteklemez. Databricks, çoğu alım senaryosu için Otomatik Yükleyici'nin kullanılmasını önerir.Varsayılan değer: Yok |
singleVariantColumnTür: StringJSON belgesinin tamamının alınıp alınmayacağı, verilen dizeyi sütun adı olarak kullanarak tek bir Variant sütununa ayrıştırılmasına bağlıdır. Devre dışı bırakılırsa, JSON alanları kendi sütunlarına aktarılır. Varsayılan değer: Yok |
timestampFormatTür: StringZaman damgası dizelerini ayrıştırma biçimi. Varsayılan değer: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneTür: Stringjava.time.ZoneId Zaman damgalarını ve tarihleri ayrıştırırken kullanılacak.Varsayılan değer: Yok |
CSV Seçenekler
| Seçenek |
|---|
badRecordsPathTür: StringBozuk CSV kayıtları hakkındaki bilgileri kaydetmek için dosyaları depolama yolu. Varsayılan değer: Yok |
charToEscapeQuoteEscapingTür: CharAlıntı işaretlerini kaçmak için kullanılan karakteri kaçan karakter. Örneğin, aşağıdaki kayıt için: [ " a\\", b ]
Varsayılan değer: '\0' |
columnNameOfCorruptRecordOtomatik Yükleyici için desteklenir. COPY INTO (eski sistem) için destek sağlanmamaktadır.Tür: StringHatalı biçimlendirilmiş ve ayrıştırılamayan kayıtları depolama sütunu. Ayrıştırma için modeDROPMALFORMEDolarak ayarlanırsa, bu sütun boş olur.Varsayılan değer: _corrupt_record |
commentTür: CharMetin satırının başında bulunduğunda satır açıklamasını temsil eden karakteri tanımlar. Açıklama atlama özelliğini devre dışı bırakmak için kullanın '\0' .Varsayılan değer: '\u0000' |
dateFormatTür: StringTarih dizelerini ayrıştırma formatı. Varsayılan değer: yyyy-MM-dd |
emptyValueTür: StringBoş bir değerin dize gösterimi. Varsayılan değer: "" |
encoding veya charsetTür: StringCSV dosyalarının kodlama adı. Seçenekler listesi için bkz. java.nio.charset.Charset.
UTF-16 ve UTF-32 olduğunda multilinetruekullanılamaz.Varsayılan değer: UTF-8 |
enforceSchemaTür: BooleanBelirtilen veya çıkarsanan şemanın CSV dosyalarına zorla uygulanıp uygulanmayacağı. Seçenek etkinleştirilirse, CSV dosyalarının başlıkları yoksayılır. Verileri kurtarmak ve şema evrimine izin vermek için Otomatik Yükleyici kullanılırken bu seçenek varsayılan olarak yoksayılır. Varsayılan değer: true |
escapeTür: CharVerileri ayrıştırırken kullanılacak kaçış karakteri. Varsayılan değer: '\' |
headerTür: BooleanCSV dosyalarının üst bilgi içerip içermediği. Otomatik Yükleyici, şema tanımlanırken dosyaların üst bilgiye sahip olduğunu varsayar. Varsayılan değer: false |
ignoreLeadingWhiteSpaceTür: BooleanAyrıştırılan her bir değer için baştaki boşlukların yoksayılıp yoksayılmayacağı. Varsayılan değer: false |
ignoreTrailingWhiteSpaceTür: BooleanAyrıştırılan her değer için sondaki boşlukların göz ardı edilip edilmeyeceği. Varsayılan değer: false |
inferSchemaTür: BooleanAyrıştırılan CSV kayıtlarının veri türlerinin çıkarılıp çıkarılmaması veya tüm sütunların StringTypeolduğu varsayımı yapılması.
trueolarak ayarlanırsa veriler üzerinde ek bir geçiş gerektirir. Otomatik Yükleyici için bunun yerine kullanın cloudFiles.inferColumnTypes .Varsayılan değer: false |
lineSepTür: StringArdışık iki CSV kaydı arasındaki dize. Varsayılan değer: Hiçbiri; \r, \r\n ve \n'yi kapsar |
localeTür: Stringjava.util.Locale tanımlayıcısı. CSV içinde varsayılan tarih, zaman damgası ve ondalık ayrıştırma işlemini etkiler.Varsayılan değer: US |
maxCharsPerColumnTür: IntAyrıştırmak için bir değerden beklenen karakter sayısı üst sınırı. Bellek hatalarını önlemek için kullanılabilir. Varsayılan -1 değeri, sınırsız anlamına gelir.Varsayılan değer: -1 |
maxColumnsTür: IntBir kaydın kaç sütuna sahip olabileceğinin sabit sınırı. Varsayılan değer: 20480 |
mergeSchemaTür: BooleanBirden çok dosyadan şema oluşturulup oluşturulmayacağı ve her dosyanın şemasının birleştirilip birleştirilmeyeceği. Şema çıkarıldığında Otomatik Yükleyici için varsayılan olarak etkindir. Varsayılan değer: false |
modeTür: StringHatalı biçimlendirilmiş kayıtları işleme konusunda ayrıştırıcı modu. Bir 'PERMISSIVE''den biri'DROPMALFORMED', ve 'FAILFAST'.Varsayılan değer: PERMISSIVE |
multiLineTür: BooleanCSV kayıtlarının birden çok satıra yayılıp yayılmadığı. Varsayılan değer: false |
nanValueTür: StringFloatType ve DoubleType sütunları ayrıştırırken sayı olmayan bir değerin dize gösterimi.Varsayılan değer: "NaN" |
negativeInfTür: StringFloatType veya DoubleType sütunları ayrıştırılırken negatif sonsuzluğun dize olarak temsil edilmesi.Varsayılan değer: "-Inf" |
nullValueTür: StringNull değerin dize gösterimi. Varsayılan değer: "" |
parserCaseSensitive (kullanım dışı)Tür: BooleanDosyalar okunurken, üst bilgide bildirilen sütunların şemayla büyük/küçük harf duyarlılığına göre hizalanıp hizalanmayacağını belirlemek. Bu, Otomatik Yükleyici için varsayılan olarakdır true . Büyük/küçük harfe göre farklılık gösteren sütunlar, etkinleştirilirse rescuedDataColumn dosyasında kurtarılacaktır.
readerCaseSensitive, bu seçeneğin yerine kullanıma sunulmuştur.Varsayılan değer: false |
positiveInfTür: StringFloatType veya DoubleType sütunları ayrıştırırken pozitif sonsuzluğun string ifadesi.Varsayılan değer: "Inf" |
preferDateTür: BooleanMümkün olduğunda dizeleri zaman damgası yerine tarih olarak yorumlama girişiminde bulunur. Ayrıca, inferSchema etkinleştirerek veya kullanarak şema çıkarımı kullanmanız gerekircloudFiles.inferColumnTypes otomatik yükleyici ile.Varsayılan değer: true |
quoteTür: CharAlan sınırlayıcısının değerin bir parçası olduğu değerlerden kaçış için kullanılan karakter. Varsayılan değer: " |
readerCaseSensitiveTür: BooleanEtkinleştirildiğinde rescuedDataColumn büyük/küçük harf duyarlılığı davranışını belirtir. Eğer doğruysa, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harf duyarlılığı olmadan okuyun.Varsayılan değer: true |
rescuedDataColumnTür: StringVeri türü uyuşmazlığı ve şema uyuşmazlığı (sütun büyük/küçük harf kullanımı dahil) nedeniyle ayrıştırılamayan tüm verilerin ayrı bir sütunda toplanması gerekip gerekmediği. Bu sütun, Otomatik Yükleyici kullanılırken varsayılan olarak eklenir. Daha fazla ayrıntı için Kurtarılan veri sütunu nedir? konusuna bakın.. COPY INTO (eski), COPY INTOkullanarak şemayı el ile ayarlayamadığınızdan kurtarılan veri sütununu desteklemez. Databricks, çoğu alım senaryosu için Otomatik Yükleyici'nin kullanılmasını önerir.Varsayılan değer: Yok |
sep veya delimiterTür: StringSütunlar arasında kullanılan ayırıcı dize. Varsayılan değer: "," |
skipRowsTür: IntCSV dosyasının başından yoksayılması gereken satır sayısı (açıklama ve boş satırlar dahil olmak üzere). header doğru ise, üst bilgi ilk atlanmamış ve yorumsuz satır olur.Varsayılan değer: 0 |
timestampFormatTür: StringZaman damgası dizelerini ayrıştırma biçimi. Varsayılan değer: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneTür: Stringjava.time.ZoneId Zaman damgalarını ve tarihleri ayrıştırırken kullanılacak.Varsayılan değer: Yok |
unescapedQuoteHandlingTür: StringKaçış karakteri kullanılmamış tırnak işaretini işleme stratejisi. İzin verilen seçenekler:
Varsayılan değer: STOP_AT_DELIMITER |
XML Seçenekler
| Seçenek | Açıklama | Kapsam |
|---|---|---|
rowTag |
Satır olarak işlenecek XML dosyalarının satır etiketi. Örnek XML'de <books> <book><book>...<books>, uygun değer şeklindedir book. Bu gerekli bir seçenektir. |
okundu |
samplingRatio |
Şema çıkarımı için kullanılan satırların bir bölümünü tanımlar. XML yerleşik işlevleri bu seçeneği yoksayar. Varsayılan: 1.0. |
okundu |
excludeAttribute |
Öğelerdeki özniteliklerin dışlanıp dışlanmaymayacağı. Varsayılan: false. |
okundu |
mode |
Ayrıştırma sırasında bozuk kayıtlarla ilgilenme modu.PERMISSIVE: Bozuk kayıtlar için, hatalı biçimlendirilmiş alanları columnNameOfCorruptRecord olarak ayarlar ve hatalı biçimlendirilmiş dizeyi null ile yapılandırılan bir alana yerleştirir. Bozuk kayıtları tutmak için, kullanıcı tanımlı şemada string adlı bir columnNameOfCorruptRecord türü alanı ayarlayabilirsiniz. Bir şemada alan yoksa, ayrıştırma sırasında bozuk kayıtlar bırakılır. Bir şema çıkarıldığında, ayrıştırıcı örtük olarak bir çıkış şemasına columnNameOfCorruptRecord alanı ekler.DROPMALFORMED: Bozuk kayıtları yoksayar. Bu mod, XML yerleşik işlevleri için desteklenmez.FAILFAST: Ayrıştırıcı bozuk kayıtlarla karşılaştığında bir istisna oluşturur. |
okundu |
inferSchema |
true, elde edilen her DataFrame sütunu için uygun bir tür çıkarsamaya çalışır.
falseolursa, sonuç olarak elde edilen tüm sütunlar string türündedir. Varsayılan:true. XML yerleşik işlevleri bu seçeneği yoksayar. |
okundu |
columnNameOfCorruptRecord |
Tarafından oluşturulan hatalı biçimlendirilmiş bir dize içeren yeni alanın yeniden adlandırılmasına izin verirPERMISSIVE modu. Varsayılan: spark.sql.columnNameOfCorruptRecord. |
okundu |
attributePrefix |
Öznitelikleri öğelerden ayırt etmek için özniteliklere yönelik ön ek. Bu, alan adları için ön ek olacaktır. Varsayılan _ değeridir. XML okumak için boş olabilir, ancak yazmak için boş olamaz. |
okuma, yazma |
valueTag |
Öznitelikleri veya alt öğeleri de olan öğelerdeki karakter verileri için kullanılan etiket. Kullanıcı şemadaki valueTag alanını belirtebilir veya diğer öğeler veya özniteliklere sahip öğelerde karakter verileri bulunduğunda şema çıkarımı sırasında otomatik olarak eklenir. Varsayılan: _VALUE |
okuma,yazma |
encoding |
Okuma için XML dosyalarını verilen kodlama türüne göre çözer. Yazmak için, kaydedilen XML dosyalarının kodlamasını (karakter kümesi) belirtir. XML yerleşik işlevleri bu seçeneği yoksayar. Varsayılan: UTF-8. |
okuma, yazma |
ignoreSurroundingSpaces |
Okunan değerlerdeki etrafındaki boşlukların göz ardı edilip edilmeyeceğini tanımlar. Varsayılan: true. Yalnızca boşluktan oluşan karakter verileri yoksayılır. |
okundu |
rowValidationXSDPath |
Her satırın XML'sini ayrı ayrı doğrulamak için kullanılan isteğe bağlı bir XSD dosyasının yolu. Doğrulanemeyen satırlar yukarıdaki gibi ayrıştırma hataları olarak değerlendirilir. XSD, sağlanan veya çıkarılmış şemayı başka bir şekilde etkilemez. | okundu |
ignoreNamespace |
Eğer true, XML öğeleri ve özniteliklerindeki ad alanlarının ön ekleri yoksayılır. Etiketler <abc:author> ve <def:author>, örneğin, her ikisi de yalnızca <author>olarak değerlendirilir.
rowTag öğesinde ad alanları yoksayılamaz, ancak yalnızca okunan alt öğeler yoksayılabilir. XML ayrıştırma, false olsa bile ad alanı farkında değildir. Varsayılan: false. |
okundu |
timestampFormat |
Datetime deseni formatını izleyen özel zaman damgası biçim dizesi. Bu tür için timestamp geçerlidir. Varsayılan: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. |
okuma, yazma |
timestampNTZFormat |
Saat dilimi içermeyen zaman damgası için tarih ve saat deseni biçimini izleyen özel biçim dizesi. Bu, TimestampNTZType türü için geçerlidir. Varsayılan:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
okuma, yazma |
dateFormat |
Datetime pattern biçimini izleyen özel tarih formatı dizesi. Bu, tarih türü için geçerlidir. Varsayılan: yyyy-MM-dd. |
okuma, yazma |
locale |
Yerel ayarı IETF BCP 47 biçiminde bir dil etiketi olarak ayarlar. Örneğin, locale tarihler ve zaman damgaları ayrıştırılırken kullanılır. Varsayılan: en-US. |
okundu |
rootTag |
XML dosyalarının kök etiketi. Örneğin, <books> <book><book>...</books> ifadesinde uygun değer books şeklindedir. gibi books foo="bar"bir değer belirterek temel öznitelikler ekleyebilirsiniz. Varsayılan: ROWS. |
yaz |
declaration |
Her çıktı XML dosyasının başında, `rootTag` etiketinden önce yazılacak olan XML bildiriminin içeriği. Örneğin, bir foo değeri, <?xml foo?> yazılmasına sebep olur. Gizlenecek boş bir dizeye ayarlayın. Varsayılan: version="1.0"encoding="UTF-8" standalone="yes". |
yaz |
arrayElementName |
Dizi değerine sahip bir sütunun her öğesini yazarken saran XML öğesinin adı. Varsayılan: item. |
yaz |
nullValue |
Null değerin dize gösterimini ayarlar. Varsayılan: string null.
null olduğunda, ayrıştırıcı alanlar için öznitelikleri ve öğeleri yazmaz. |
okuma, yazma |
compression |
Dosyaya kaydederken kullanılacak sıkıştırma kodu. Bu bilinen büyük/küçük harfe duyarsız kısaltılmış adlardan biri olabilir (none, bzip2, gzip,lz4, snappy, vedeflate. ) XML yerleşik işlevleri bu seçeneği yoksayar. Varsayılan: none. |
yaz |
validateName |
True ise, XML öğesi adı doğrulaması başarısız olduğunda bir hata verir. Örneğin, SQL alan adlarının boşlukları olabilir, ancak XML öğesi adları olamaz. Varsayılan:true. |
yaz |
readerCaseSensitive |
rescuedDataColumn etkinleştirildiğinde, büyük/küçük harf duyarlılığı davranışını belirler. Eğer doğruysa, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harf duyarlılığı olmadan okuyun. Varsayılan: true. |
okundu |
rescuedDataColumn |
Veri türü uyuşmazlığı ve şema uyuşmazlığı (sütun büyük/küçük harf kullanımı dahil) nedeniyle ayrıştırılamayan tüm verilerin ayrı bir sütunda toplanması gerekip gerekmediği. Bu sütun, Otomatik Yükleyici kullanılırken varsayılan olarak eklenir. Daha fazla ayrıntı için bkz. Kurtarılan veri sütunu nedir?.COPY INTO (eski), COPY INTOkullanarak şemayı el ile ayarlayamadığınızdan kurtarılan veri sütununu desteklemez. Databricks, çoğu alım senaryosu için Otomatik Yükleyici'nin kullanılmasını önerir.Varsayılan: Yok. |
okundu |
singleVariantColumn |
Tek değişkenli sütunun adını belirtir. Okuma için bu seçenek belirtilirse, xml kaydının tamamını tek bir Variant sütununa ayrıştırın ve verilen seçenek dizesi değeri sütunun adı olarak belirtin. Bu seçenek yazmak için sağlanmışsa, tek Variant sütununun değerini XML dosyalarına yazın. Varsayılan: none. |
okuma, yazma |
PARQUET Seçenekler
| Seçenek |
|---|
datetimeRebaseModeTür: StringJulian ve Proleptik Gregoryen takvimler arasında tarih ve zaman damgası değerlerinin yeniden esas alınmasını denetler. İzin verilen değerler: EXCEPTION, LEGACYveCORRECTED.Varsayılan değer: LEGACY |
int96RebaseModeTür: StringJulian ve Proleptik Gregoryen takvimler arasında INT96 zaman damgası değerlerinin yeniden ayarlanmasını denetler. İzin verilen değerler: EXCEPTION, LEGACYveCORRECTED.Varsayılan değer: LEGACY |
mergeSchemaTür: BooleanBirden çok dosyadan şema oluşturulup oluşturulmayacağı ve her dosyanın şemasının birleştirilip birleştirilmeyeceği. Varsayılan değer: false |
readerCaseSensitiveTür: BooleanEtkinleştirildiğinde rescuedDataColumn büyük/küçük harf duyarlılığı davranışını belirtir. Eğer doğruysa, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harf duyarlılığı olmadan okuyun.Varsayılan değer: true |
rescuedDataColumnTür: StringVeri türü uyuşmazlığı ve şema uyuşmazlığı (sütun büyük/küçük harf kullanımı dahil) nedeniyle ayrıştırılamayan tüm verilerin ayrı bir sütunda toplanması gerekip gerekmediği. Bu sütun, Otomatik Yükleyici kullanılırken varsayılan olarak eklenir. Daha fazla ayrıntı için Kurtarılan veri sütunu nedir? konusuna bakın.. COPY INTO (eski), COPY INTOkullanarak şemayı el ile ayarlayamadığınızdan kurtarılan veri sütununu desteklemez. Databricks, çoğu alım senaryosu için Otomatik Yükleyici'nin kullanılmasını önerir.Varsayılan değer: Yok |
AVRO Seçenekler
| Seçenek |
|---|
avroSchemaTür: StringKullanıcı tarafından Avro formatında sağlanmış isteğe bağlı şema. Avro okunurken bu seçenek, gerçek Avro şemasıyla uyumlu ancak farklı olan gelişmiş bir şemaya ayarlanabilir. Seri durumdan çıkarma şeması, geliştirilen şemayla tutarlı olacaktır. Örneğin, varsayılan değere sahip bir ek sütun içeren gelişmiş bir şema ayarlarsanız, okuma sonucu yeni sütunu da içerir. Varsayılan değer: Yok |
datetimeRebaseModeTür: StringJulian ve Proleptik Gregoryen takvimler arasında tarih ve zaman damgası değerlerinin yeniden esas alınmasını denetler. İzin verilen değerler: EXCEPTION, LEGACYveCORRECTED.Varsayılan değer: LEGACY |
mergeSchemaTür: BooleanBirden çok dosyadan şema oluşturulup oluşturulmayacağı ve her dosyanın şemasının birleştirilip birleştirilmeyeceği. mergeSchema Avro, veri türlerini gevşetmez.Varsayılan değer: false |
readerCaseSensitiveTür: BooleanEtkinleştirildiğinde rescuedDataColumn büyük/küçük harf duyarlılığı davranışını belirtir. Eğer doğruysa, adları şemadan büyük/küçük harfe göre farklılık gösteren veri sütunlarını kurtarın; aksi takdirde, verileri büyük/küçük harf duyarlılığı olmadan okuyun.Varsayılan değer: true |
rescuedDataColumnTür: StringVeri türü uyuşmazlığı ve şema uyuşmazlığı (sütun büyük/küçük harf kullanımı dahil) nedeniyle ayrıştırılamayan tüm verilerin ayrı bir sütunda toplanması gerekip gerekmediği. Bu sütun, Otomatik Yükleyici kullanılırken varsayılan olarak eklenir. COPY INTO (eski), COPY INTOkullanarak şemayı el ile ayarlayamadığınızdan kurtarılan veri sütununu desteklemez. Databricks, çoğu alım senaryosu için Otomatik Yükleyici'nin kullanılmasını önerir.Daha fazla ayrıntı için Kurtarılan veri sütunu nedir? konusuna bakın.. Varsayılan değer: Yok |
BINARYFILE Seçenekler
İkili dosyalar ek yapılandırma seçeneklerine sahip değildir.
TEXT Seçenekler
| Seçenek |
|---|
encodingTür: StringMetin dosyası satır ayırıcısının kodlama adı. Seçeneklerin listesi için bkz java.nio.charset.Charset. .Dosyanın içeriği bu seçenekten etkilenmez ve as-isokunur. Varsayılan değer: UTF-8 |
lineSepTür: StringArdışık iki TEXT kaydı arasındaki bir metin. Varsayılan değer: Yok, \r, \r\n ve \n'yi kapsar. |
wholeTextTür: BooleanBir dosyanın tek bir kayıt olarak okunup okunmayacağı. Varsayılan değer: false |
ORC Seçenekler
| Seçenek |
|---|
mergeSchemaTür: BooleanBirden çok dosyadan şema oluşturulup oluşturulmayacağı ve her dosyanın şemasının birleştirilip birleştirilmeyeceği. Varsayılan değer: false |
Akış seçenekleri
Bu seçenekler, read_files veya akış sorgusu içinde kullanırken geçerlidir.
| Seçenek |
|---|
allowOverwritesTür: BooleanBulma işleminden sonra değiştirilmiş dosyaların yeniden işlenip işlenmeyeceği. Dosyanın kullanılabilir en son sürümü, son başarılı yenileme sorgusu başlangıç zamanından bu yana değiştirilmişse yenileme sırasında işlenir. Varsayılan değer: false |
includeExistingFilesTür: BooleanMevcut dosyaların akış işleme giriş yoluna dahil edilip edilmeyeceği veya yalnızca ilk kurulumdan sonra gelen yeni dosyaların işlenmesi. Bu seçenek yalnızca bir akışı ilk kez başlattığınızda değerlendirilir. Akışı yeniden başlattıktan sonra bu seçeneğin değiştirilmesinin hiçbir etkisi olmaz. Varsayılan değer: true |
maxBytesPerTriggerTür: Byte StringHer tetikleyicide işlenecek yeni bayt sayısı üst sınırı. Her mikrobatch değerini 10 GB veriyle sınırlamak için 10g gibi bir bayt dizesi belirtebilirsiniz. Bu geçici bir maksimum değerdir. Her birinde 3 GB olan dosyalarınız varsa, Azure Databricks bir mikrobatch içinde 12 GB işler.
maxFilesPerTrigger ile birlikte kullanıldığında, Azure Databricks maxFilesPerTrigger veya maxBytesPerTrigger alt sınırına kadar (hangisi önce ulaşılırsa) tüketir.Not: Sunucusuz SQL ambarlarında oluşturulan akış tabloları için bu seçenek ve maxFilesPerTrigger, size en iyi gecikme süresini ve performansı sağlamak için iş yükü boyutuna ve sunucusuz işlem kaynaklarına göre ölçeklendirilen dinamik erişim denetiminden yararlanacak şekilde ayarlanmamalıdır.Varsayılan değer: Yok |
maxFilesPerTriggerTür: IntegerHer tetikleyicide işlenecek en fazla yeni dosya sayısı. maxBytesPerTrigger ile birlikte kullanıldığında, Azure Databricks maxFilesPerTrigger veya maxBytesPerTrigger alt sınırına kadar (hangisi önce ulaşılırsa) tüketir.Not: Sunucusuz SQL ambarlarında oluşturulan akış tabloları için bu seçenek ve maxBytesPerTrigger, size en iyi gecikme süresini ve performansı sağlamak için iş yükü boyutuna ve sunucusuz işlem kaynaklarına göre ölçeklendirilen dinamik erişim denetiminden yararlanacak şekilde ayarlanmamalıdır.Varsayılan değer: 1000 |
schemaEvolutionModeTür: StringVerilerde yeni sütunlar keşfedildikçe şemayı geliştirme modu. Varsayılan olarak, JSON veri kümeleri çıkarılırken sütunlar dize olarak çıkarılır. Daha fazla bilgi için bkz. şema evrimi text ve binaryFile dosyaları için geçerli değildir.Varsayılan değer: Şema sağlanmadığında "addNewColumns"."none" yoksa. |
schemaLocationTür: StringÇıkarsanan şemayı ve sonraki değişiklikleri depolama konumu. Daha fazla bilgi için bkz. şema çıkarımı Varsayılan değer: Yok |
Örnekler
-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');
-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'csv',
schema => 'id int, ts timestamp, event string');
-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'csv')
-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')
-- Reads a single JSON file
> SELECT * FROM read_files(
'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')
-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'json',
schemaHints => 'id int')
-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
'gs://my-bucket/avroData',
modifiedAfter => date_sub(current_date(), 1),
modifiedBefore => current_date())
-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
AS SELECT *, _metadata.file_path
FROM read_files('gs://my-bucket/avroData')
-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);
Yapılandırılmamış dosyalarla çalışma
Aşağıdaki örneklerde, Unity Kataloğu birimlerinde depolanan yapılandırılmamış dosyaları okumak ve filtrelemek ve dosya içeriğini işlemek için yapay zeka işlevleriyle birleştirmek BINARYFILE için biçim kullanılırread_files.
Bir birimdeki tüm dosyaları listeleme: İkili içerik yüklemeden dosya meta verilerini döndürmek için kullanın * EXCEPT (content) ve dosya düzeyinde meta veri alanlarını dahil etmek için açıkça seçin _metadata .
SELECT
* EXCEPT (content),
_metadata
FROM read_files(
'/Volumes/<catalog>/<schema>/<volume>',
format => 'binaryFile'
);
Boyuta göre filtrelenmiş görüntü dosyalarını listele: Belirli görüntü dosya türlerini hedeflemek için kullanın fileNamePattern ve yalnızca belirli bir boyut aralığındaki dosyaları döndürmek için filtreleyin _metadata.file_size .
SELECT
* EXCEPT (content),
_metadata
FROM read_files(
'/Volumes/my_catalog/my_schema/my_volume',
format => 'binaryFile',
fileNamePattern => '*.{jpg,jpeg,png,JPG,JPEG,PNG}'
)
WHERE _metadata.file_size BETWEEN 20000 AND 1000000;
Geçen gün içinde değiştirilen PDF dosyalarını listele: PDF dosyalarını hedeflemek için kullanın fileNamePattern ve yalnızca geçen gün içinde değiştirilen dosyaları döndürecek şekilde filtreleyin modificationTime .
SELECT
* EXCEPT (content),
_metadata
FROM read_files(
'/Volumes/my_catalog/my_schema/my_volume',
format => 'binaryFile',
fileNamePattern => '*.{pdf,PDF}'
)
WHERE modificationTime >= current_timestamp() - INTERVAL 1 DAY;
Görüntü dosyalarında yapay zeka işlevi çalıştırma: Bulut depolama yolundan okunan görüntü dosyalarını işlemek için kullanın ai_query .
_metadata Belirli dosyaları hedeflemek için alanları filtreleyin.
SELECT
path AS file_path,
ai_query(
'databricks-llama-4-maverick',
'Describe this image in ten words or less: ',
files => content
) AS result
FROM read_files(
's3://my-s3-bucket/path/to/images/',
format => 'binaryFile',
fileNamePattern => '*.{jpg,jpeg,png,JPG,JPEG,PNG}'
)
WHERE _metadata.file_size < 1000000
AND _metadata.file_name LIKE '%robots%';
Dosya adı deseni ile eşleşen belgeleri ayrıştırma: PDF'lerden ve görüntülerden yapılandırılmış içeriği ayıklamak için kullanın ai_parse_document . Belirli dosyaları hedeflemek için filtre ölçütü _metadata.file_name .
SELECT
path AS file_path,
ai_parse_document(
content,
map('version', '2.0')
) AS result
FROM read_files(
'/Volumes/main/public/my_files/',
format => 'binaryFile',
fileNamePattern => '*.{jpg,jpeg,pdf,png}'
)
WHERE _metadata.file_name ILIKE '%receipt%';
Yapılandırılmış tabloyla dosyaları birleştirme: Yapılandırılmamış iş akışları genellikle yapılandırılmamış dosyalarla tablolarda depolanan yapılandırılmış verilerin birleştirilmesini gerektirir. Aşağıdaki örnek, dosyaları dosya boyutuna ve kullanıcı özniteliğine göre filtreleyerek iki yapılandırılmış tablo içeren bir bulut depolama yolunda birleştirir. ile user_files birleştirme işlemi, ve splitkullanılarak element_at dosya yolundan dosya kimliği ayıklanarak yapılır.
SELECT
users.user_id,
user_files.file_id,
files._metadata.file_name AS file_name,
files.* EXCEPT (content),
ai_parse_document(files.content, map('version', '2.0')) AS parsed_document
FROM read_files(
's3://my-bucket-name/files/',
format => 'binaryFile',
fileNamePattern => '*.{pdf,doc,docx,ppt,pptx,png,jpg,jpeg}'
) AS files
JOIN user_files
ON user_files.file_id = element_at(split(files.path, '/'), -2)
JOIN users
ON users.user_id = user_files.user_id
WHERE users.email LIKE '%@databricks.com'
AND files._metadata.file_size < 10000000;