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.
Bu makalede Python, Scala, R ve SQL kullanarak Azure Databricks ile CSV dosyalarını okumak için örnekler sağlanmaktadır.
Not
Databricks, SQL kullanıcılarının CSV dosyalarını okuması read_files için tablo değerli işlevi önerir.
read_files Databricks Runtime 13.3 LTS ve üzerinde kullanılabilir.
Geçici bir görünüm de kullanabilirsiniz. GEÇICI görünümler veya read_fileskullanmadan DOĞRUDAN CSV verilerini okumak için SQL kullanıyorsanız aşağıdaki sınırlamalar geçerlidir:
Seçenekler
CSV dosya veri kaynakları için çeşitli seçenekler yapılandırabilirsiniz. Desteklenen okuma seçenekleri için aşağıdaki Apache Spark başvuru makalelerine bakın:
Bu makale yalnızca CSV'yi okumayı kapsar, ancak aşağıdaki Apache Spark başvuru makalelerinde desteklenen yazma seçenekleri hakkında bilgi edinebilirsiniz:
Hatalı biçimlendirilmiş CSV kayıtlarıyla çalışma
Belirtilen şemaya sahip CSV dosyalarını okurken, dosyalardaki verilerin şemayla eşleşmemesi mümkündür. Örneğin, şehir adını içeren bir alan tamsayı olarak ayrıştırılmaz. Bunun sonuçları, ayrıştırıcının çalıştığı moda bağlıdır:
-
PERMISSIVE(varsayılan): Doğru ayrıştırılamayan alanlar için nulllar eklenir -
DROPMALFORMED: ayrıştırılamayan alanlar içeren satırları bırakır -
FAILFAST: Hatalı biçimlendirilmiş veriler bulunursa okumayı durdurur
Modu ayarlamak için seçeneğini kullanın mode .
diamonds_df = (spark.read
.format("csv")
.option("mode", "PERMISSIVE")
.load("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv")
)
PERMISSIVE Modda, aşağıdaki yöntemlerden birini kullanarak doğru ayrıştırılamayan satırları incelemek mümkündür:
- Bozuk kayıtları bir dosyaya kaydetme seçeneği
badRecordsPathiçin özel bir yol sağlayabilirsiniz. - Sütunu DataFrameReader'a sağlanan şemaya ekleyerek
_corrupt_recordsonuçta elde edilen DataFrame'deki bozuk kayıtları gözden geçirebilirsiniz.
Not
seçeneği badRecordsPath yerine _corrupt_recordönceliklidir. Bu, sağlanan yola yazılan hatalı biçimlendirilmiş satırların sonuçtaki DataFrame'de görünmediği anlamına gelir.
Kurtarılan veri sütunu kullanılırken hatalı biçimlendirilmiş kayıtlar için varsayılan davranış değişir.
Yanlış biçimlendirilmiş satırlar not defterini bulma
Kurtarılan veri sütunu
Not
Bu özellik Databricks Runtime 8.3 (EoS) ve üzerinde desteklenir.
Modu kullanırken, bir kayıttaki bir veya daha fazla alanda aşağıdaki sorunlardan biri sebebiyle ayrıştırılamayan verileri yakalamak için kurtarılan veri sütununu etkinleştirebilirsiniz.
- Sağlanan şemada yok.
- Sağlanan şemanın veri türüyle eşleşmiyor.
- Sağlanan şemadaki alan adlarıyla büyük/küçük harf uyuşmazlığı var.
Kurtarılan veri sütunu, kurtarılan sütunları ve kaydın kaynak dosya yolunu içeren bir JSON belgesi olarak döndürülür. Kurtarılan veri sütunundan kaynak dosya yolunu kaldırmak için SQL yapılandırmasını spark.conf.set("spark.databricks.sql.rescuedDataColumn.filePath.enabled", "false")ayarlayabilirsiniz. Ile gibi rescuedDataColumn_rescued_dataverileri okurken seçeneğini spark.read.option("rescuedDataColumn", "_rescued_data").format("csv").load(<path>) bir sütun adı olarak ayarlayarak kurtarılan veri sütununu etkinleştirebilirsiniz.
CSV ayrıştırıcısı kayıtları ayrıştırırken üç modu destekler: PERMISSIVE, DROPMALFORMEDve FAILFAST. ile rescuedDataColumnbirlikte kullanıldığında, veri türü uyuşmazlıkları kayıtların modda DROPMALFORMED bırakılmasına veya modda hata FAILFAST oluşturmasına neden olmaz. Yalnızca bozuk kayıtlar (eksik veya hatalı biçimlendirilmiş CSV) bırakılır veya hata oluşturur.
rescuedDataColumn Modda PERMISSIVE kullanıldığında, bozuk kayıtlara aşağıdaki kurallar uygulanır:
- Dosyanın ilk satırı (üst bilgi satırı veya veri satırı) beklenen satır uzunluğunu ayarlar.
- Farklı sayıda sütuna sahip bir satır tamamlanmamış olarak kabul edilir.
- Veri türü uyuşmazlıkları bozuk kayıtlar olarak kabul edilmez.
- Yalnızca eksik ve hatalı biçimlendirilmiş CSV kayıtları bozuk olarak kabul edilir ve veya
_corrupt_recordsütununabadRecordsPathkaydedilir.
SQL örneği: CSV dosyasını okuma
Aşağıdaki SQL örneği kullanarak read_filesbir CSV dosyasını okur.
-- mode "FAILFAST" aborts file parsing with a RuntimeException if malformed lines are encountered
SELECT * FROM read_files(
'abfss://<bucket>@<storage-account>.dfs.core.windows.net/<path>/<file>.csv',
format => 'csv',
header => true,
mode => 'FAILFAST')
Scala, R ve Python örnekleri: CSV dosyasını okuma
Aşağıdaki not defterinde Scala, R ve Python kullanarak dosya okuma, örnek verileri görüntüleme ve veri şemasını yazdırma gösterilmektedir. Bu bölümdeki örneklerde elmas veri kümesi kullanılmıştır. Veri kümesinin yolunu ve istediğiniz seçenekleri belirtin.
CSV dosyaları not defterini okuma
Örnek: Şema belirtme
CSV dosyasının şeması bilindiğinde, seçeneğiyle CSV okuyucusunun istediği şemayı schema belirtebilirsiniz.
Şema not defteriyle CSV dosyalarını okuma
kullanan read_filesSQL örneği:
SELECT * FROM read_files(
'abfss://<bucket>@<storage-account>.dfs.core.windows.net/<path>/<file>.csv',
format => 'csv',
header => false,
schema => 'id string, date date, event_time timestamp')
Örnek: Sütunların bir alt kümesini okuma tuzakları
CSV ayrıştırıcısının davranışı, okunan sütun kümesine bağlıdır. Belirtilen şema yanlışsa, sonuçlar erişilen sütunların alt kümesine bağlı olarak önemli ölçüde farklılık gösterebilir. Aşağıdaki not defteri en yaygın tuzakları sunar.