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.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime
Yapı değeri csvStr ve schema ile döndürür.
Söz dizimi
from_csv(csvStr, schema [, options])
Argümanlar
-
csvStr: CSV veri satırını belirten STRING ifadesi. -
schema: Dize sabiti veyaschema_of_csvişlev çağrısı. -
options: İsteğe bağlı MAP<STRING,STRING> değişmez değer belirtme yönergeleri.
İadeler
Şema tanımıyla eşleşen alan adları ve türleri içeren bir STRUCT.
csvStr, schema ve options bağlamında 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, örneğin CREATE TABLE.
optionssağlanmışsa aşağıdakilerden biri olabilir:
-
sep(varsayılan,): her alan ve değer için bir ayırıcı ayarlar. 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 durumlarda, tırnak içindeki değerleri kaçmak için kullanılan tek bir karakteri ayarlar. Alıntıları devre dışı bırakmak isterseniz, null değil, boş bir dize ayarlamanız gerekir. Bu davranış ilecom.databricks.spark.csvfarklı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ılanescapeveya\0): tırnak karakteri için kaçış karakterinden kaçış sağlayan tek bir karakter ayarlar. Varsayılan değer,escapevequotekarakterleri farklı olduğunda kaçış karakteri, aksi takdirde\0'dir. -
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. -
header(varsayılanfalse): Okuma için ilk satırı sütunların adı olarak kullanır. Yazmak için, sütunların adlarını ilk satır olarak yazar. CSV yerleşik işlevleri bu seçeneği yoksayar. -
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 göz ardı edilir. 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ına görespark.sql.caseSensitivedikkate alınarak kontrol edilmektedir. 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): verilerden giriş şemasını otomatik olarak çıkartır. Veriler üzerinde fazladan bir geçiş yapılması gerekir. -
samplingRatio(varsayılan 1.0): şema çıkarsama için kullanılan satırların kesirini tanımlar. -
ignoreLeadingWhiteSpace(varsayılanfalse): Okunan değerlerden baştaki boşlukların atlanıp atlanmayacağını gösteren bir bayrak. -
ignoreTrailingWhiteSpace(varsayılanfalse): Okunan değerlerden gelen son boşlukların atlanıp atlanmayacağını belirten 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'dir -
unescapedQuoteHandling(varsayılanSTOP_AT_DELIMITER): CSV ayrıştırıcısının, kaçış karakteri kullanılmamış tırnak işaretleriyle olan değerleri nasıl işlediğ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 bir sınırlayıcıya veya satır sonuna ulaşılana kadar tüm karakterleri biriktirmesini sağlar. -
STOP_AT_DELIMITER: Girişte sıralanmamış tırnak işaretleri bulunursa, belirtilen değer için ayrıştırılan içerik atlanır ve bunun yerinenullValue'de ayarlanan değer oluşturulur. -
RAISE_ERROR: Girişte ayarlanmamış tırnak işaretleri bulunursa, birTextParsingExceptionoluşturulur.
-
-
mode(varsayılanPERMISSIVE): ayrıştırma sırasında bozuk kayıtlarla ilgilenmek için bir moda izin verir. Büyük/küçük harfe duyarsız olan aşağıdaki 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.enableddenetlenebilir (varsayılan olarak etkindir).-
PERMISSIVE: bozuk bir kaydı karşıladığında, hatalı biçimlendirilmiş dizeyi tarafındancolumnNameOfCorruptRecordyapı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. Şema uzunluğundan daha fazla belirteci olduğunda, kayıttaki fazladan belirteçler atılır. -
FAILFAST: bozuk kayıtları karşıladığında bir istisna fırlatır.
-
-
columnNameOfCorruptRecord(varsayılan değerspark.sql.columnNameOfCorruptRecord' de belirtilen değerdir):PERMISSIVEmodu tarafından oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu,spark.sql.columnNameOfCorruptRecordöğeyi geçersiz kılar. -
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\nve\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.
mode seçeneği FAILFAST olarak ayarlandığında, giriş şemaya uymuyorsa Azure Databricks MALFORMED_RECORD_IN_PARSING oluşturur.
Yaygın hata koşulları
Ö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}
> SELECT from_csv('abc', 'a INT', map('mode', 'FAILFAST'));
Error: MALFORMED_RECORD_IN_PARSING