from_csv
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
ve schema
ile csvStr
bir yapı değeri döndürür.
Söz dizimi
from_csv(csvStr, schema [, options])
Bağımsız değişkenler
csvStr
: CSV veri satırını belirten STRING ifadesi.schema
: schema_of_csv işlevinin STRING değişmez değeri veya çağrıması.options
: İsteğe bağlı MAP<STRING,STRING> değişmez değer belirtme yönergeleri.
Döndürülenler
Şema tanımıyla eşleşen alan adları ve türleri içeren bir STRUCT.
csvStr
ve options
ile ilgili olarak schema
iyi biçimlendirilmelidir.
schema
içinde kullanıldığı gibi virgülle ayrılmış sütun adı ve veri türü çiftleri olarak tanımlanmalıdır.CREATE TABLE
options
sağlanmışsa aşağıdakilerden biri olabilir:
sep
(varsayılan,
): her alan ve değer için bir ayırıcı ayarlar. Bu ayırıcı bir veya daha fazla karakter olabilir.encoding
(varsayılan UTF-8): BELIRTILEN kodlama türüne göre CSV dosyalarının kodunu çözer.quote
(varsayılan"
): ayırıcının değerin parçası olabileceği tırnak içinde değerlerden kaçış için kullanılan tek bir karakter ayarlar. Tırnak işaretlerini kapatmak isterseniz null değil, boş bir dize ayarlamanız gerekir. Bu davranış ilecom.databricks.spark.csv
farklıdır.escape
(varsayılan\
): Zaten tırnak içinde tırnak işaretinden kaçış için kullanılan tek bir karakter ayarlar.charToEscapeQuoteEscaping
(varsayılanescape
veya\0
): tırnak karakteri için kaçış kaçışı için kullanılan tek bir karakter ayarlar. Varsayılan değer, vequote
karakterleri farklı olduğundaescape
kaçış karakteridir,\0
aksi takdirde.comment
(varsayılan boş dize): Bu karakterden başlayarak satırları atlamak için kullanılan tek bir karakter ayarlar. Varsayılan olarak devre dışıdır.- üst bilgi (varsayılan
false
): sütun adları olarak ilk satırı kullanır. enforceSchema
(varsayılantrue
): True olarak ayarlanırsa, belirtilen veya çıkarılmış şema zorla veri kaynağı dosyalarına uygulanır ve CSV dosyalarındaki üst bilgiler yoksayılır. Seçenek false olarak ayarlanırsa, üst bilgi seçeneğinin true olarak ayarlanması durumunda csv dosyalarındaki tüm üst bilgiler için şema doğrulanır. Şemadaki alan adları ve CSV üst bilgilerindeki sütun adları, konumları tarafından dikkatespark.sql.caseSensitive
alınarak denetlenmektedir. Varsayılan değer true olsa da, yanlış sonuçlardan kaçınmak için enforceSchema seçeneğini devre dışı bırakması önerilir.inferSchema
(varsayılanfalse
): Giriş şemasını verilerden otomatik olarak çıkartır. Veriler üzerinde fazladan bir geçiş yapılması gerekir.samplingRatio
(varsayılan 1.0): şema çıkarım için kullanılan satırların kesirini tanımlar.ignoreLeadingWhiteSpace
(varsayılanfalse
): Okunan değerlerden gelen boşluklara başlanıp başlanmayacağını gösteren bir bayrak atlanır.ignoreTrailingWhiteSpace
(varsayılanfalse
): Okunan değerlerden gelen boşlukların atlanıp atlanmayacağını gösteren bir bayrak.nullValue
(varsayılan boş dize): null değerin dize gösterimini ayarlar.emptyValue
(varsayılan boş dize): Boş bir değerin dize gösterimini ayarlar.nanValue
(varsayılanNaN
): Sayı olmayan bir değerin dize gösterimini ayarlar.positiveInf
(varsayılanInf
): pozitif sonsuzluk değerinin dize gösterimini ayarlar.negativeInf
(varsayılan-Inf)
: negatif sonsuzluk değerinin dize gösterimini ayarlar.dateFormat
(varsayılanyyyy-MM-dd
): tarih biçimini gösteren dizeyi ayarlar. Özel tarih biçimleri Tarih saat desenleri'ndeki biçimleri izler. Bu, tarih türü için geçerlidir.timestampFormat
(varsayılanyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): zaman damgası biçimini gösteren dizeyi ayarlar. Özel tarih biçimleri Tarih saat desenleri'ndeki biçimleri izler. Bu, zaman damgası türü için geçerlidir.maxColumns
(varsayılan20480
): Bir kaydın kaç sütuna sahip olabileceğinin sabit bir sınırını tanımlar.maxCharsPerColumn
(varsayılan -1): okunan belirli bir değer için izin verilen en fazla karakter sayısını tanımlar. Varsayılan olarak, sınırsız uzunluk anlamına gelen -1'dirunescapedQuoteHandling
(varsayılanSTOP_AT_DELIMITER
): CSV ayrıştırıcısının değerlerin dışarı aktarılmamış tırnaklarla nasıl işleneceğini tanımlar.STOP_AT_CLOSING_QUOTE
: Girişte serbest tırnaklar bulunursa, tırnak karakterini biriktirin ve kapanış teklifi bulunana kadar değeri tırnak içinde bir değer olarak ayrıştırmaya devam edin.BACK_TO_DELIMITER
: Girişte sıralanmamış tırnak işaretleri bulunursa, değeri tırnak içine alınmamış bir değer olarak düşünün. Bu, sınırlayıcı bulunana kadar ayrıştırıcının geçerli ayrıştırılan değerin tüm karakterlerini toplamasını sağlar. Değerde sınırlayıcı bulunmazsa, ayrıştırıcı bir sınırlayıcı veya satır sonu bulunana kadar girişteki karakterleri biriktirmeye devam eder.STOP_AT_DELIMITER
: Girişte sıralanmamış tırnak işaretleri bulunursa, değeri tırnak içine alınmamış bir değer olarak düşünün. Bu, ayrıştırıcının girişte sınırlayıcı veya satır sonu bulunana kadar tüm karakterleri birikmesini sağlar.STOP_AT_DELIMITER
: Girişte ayarlanmamış tırnak işaretleri bulunursa, belirtilen değer için ayrıştırılan içerik atlanır ve bunun yerine içindenullValue
ayarlanan değer oluşturulur.RAISE_ERROR
: Girişte ayarlanmamış tırnak işaretleri bulunursa, birTextParsingException
oluşturulur.
mode
(varsayılanPERMISSIVE
): ayrıştırma sırasında bozuk kayıtlarla ilgilenmek için bir moda izin verir. Aşağıdaki büyük/küçük harfe duyarlı olmayan modları destekler. Spark, CSV'de sütun ayıklama altında yalnızca gerekli sütunları ayrıştırmaya çalışır. Bu nedenle, bozuk kayıtlar gerekli alan kümesine göre farklı olabilir. Bu davranış tarafındanspark.sql.csv.parser.columnPruning.enabled
denetlenebilir (varsayılan olarak etkindir).PERMISSIVE
: bozuk bir kaydı karşıladığında, hatalı biçimlendirilmiş dizeyi tarafındancolumnNameOfCorruptRecord
yapılandırılan bir alana yerleştirir ve hatalı biçimlendirilmiş alanları null olarak ayarlar. Bozuk kayıtları tutmak için kullanıcı, kullanıcı tanımlı bir şemada columnNameOfCorruptRecord adlı bir dize türü alanı ayarlayabilir. Bir şemanın alanı yoksa, ayrıştırma sırasında bozuk kayıtları bırakır. Şemadan daha az veya daha fazla belirteci olan bir kayıt CSV'ye bozuk bir kayıt değildir. Şemanın uzunluğundan daha az belirteç içeren bir kaydı karşıladığında null değerini ek alanlara ayarlar. Kaydın, şemanın uzunluğundan daha fazla belirteci olduğunda, fazladan belirteçler bırakır.FAILFAST
: bozuk kayıtları karşıladığında bir özel durum oluşturur.
columnNameOfCorruptRecord
(varsayılan, içindespark.sql.columnNameOfCorruptRecord
belirtilen değerdir): modu tarafındanPERMISSIVE
oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu, öğesini geçersiz kılarspark.sql.columnNameOfCorruptRecord
.multiLine
(varsayılanfalse
): Birden çok satıra yayılabilen bir kaydı ayrıştırma.locale
(varsayılanen-US
): IETF BCP 47 biçiminde bir yerel ayarı dil etiketi olarak ayarlar. Örneğin, tarihler ve zaman damgaları ayrıştırılırken bu kullanılır.lineSep
(varsayılan, tüm\r
,\r\n
ve\n
): ayrıştırma için kullanılması gereken çizgi ayırıcısını tanımlar. Uzunluk üst sınırı 1 karakterdir.pathGlobFilter
: yalnızca desenle eşleşen yollara sahip dosyaları dahil etmek için isteğe bağlı bir glob deseni. Söz dizimi aşağıdaki gibidirorg.apache.hadoop.fs.GlobFilter
. Bölüm bulma davranışını değiştirmez.
Örnekler
> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
{1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{"time":2015-08-26 00:00:00}