Aracılığıyla paylaş


from_csv işlevi

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

ve schemaile 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.

csvStrve optionsile ilgili olarak schema iyi biçimlendirilmelidir. schemaiçinde kullanıldığı gibi virgülle ayrılmış sütun adı ve veri türü çiftleri olarak tanımlanmalıdır.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. 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ış ile com.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ılan escape veya \0): tırnak karakteri için kaçış kaçışı için kullanılan tek bir karakter ayarlar. Varsayılan değer, ve quote karakterleri farklı olduğunda escape 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ılan true): 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 dikkate spark.sql.caseSensitivealı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ılan false): 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ılan false): Okunan değerlerden gelen boşluklara başlanıp başlanmayacağını gösteren bir bayrak atlanır.
  • ignoreTrailingWhiteSpace (varsayılan false): 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ılan NaN): Sayı olmayan bir değerin dize gösterimini ayarlar.
  • positiveInf (varsayılan Inf): pozitif sonsuzluk değerinin dize gösterimini ayarlar.
  • negativeInf (varsayılan -Inf): negatif sonsuzluk değerinin dize gösterimini ayarlar.
  • dateFormat (varsayılan yyyy-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ılan yyyy-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ılan 20480): 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ılan STOP_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çinde nullValue ayarlanan değer oluşturulur.
    • RAISE_ERROR: Girişte ayarlanmamış tırnak işaretleri bulunursa, bir TextParsingException oluşturulur.
  • mode (varsayılan PERMISSIVE): 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ından spark.sql.csv.parser.columnPruning.enabled denetlenebilir (varsayılan olarak etkindir).
    • PERMISSIVE: bozuk bir kaydı karşıladığında, hatalı biçimlendirilmiş dizeyi tarafından columnNameOfCorruptRecordyapı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çinde spark.sql.columnNameOfCorruptRecordbelirtilen değerdir): modu tarafından PERMISSIVE oluşturulan hatalı biçimlendirilmiş dizeye sahip yeni alanın yeniden adlandırılmasına izin verir. Bu, öğesini geçersiz kılar spark.sql.columnNameOfCorruptRecord.
  • multiLine (varsayılan false): Birden çok satıra yayılabilen bir kaydı ayrıştırma.
  • locale (varsayılan en-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 gibidir org.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}