Azure Databricks'te pandas kullanabilir misiniz?

Databricks Runtime, standart Python paketlerinden biri olarak pandas'ı içerir ve Databricks not defterlerinde ve işlerinde pandas DataFrames oluşturmanıza ve bunlardan yararlanmanıza olanak tanır.

Databricks Runtime 10.4 LTS ve üstünde, Spark üzerinde Pandas API, PySpark DataFrames üzerinde tanıdık pandas komutları sağlar. DataFrame'leri pandas ve PySpark arasında da dönüştürebilirsiniz.

Apache Spark, pandas işlev API'leri biçiminde Arrow için optimize edilmiş Python mantığı yürütmesini içerir ve kullanıcıların pandas dönüşümlerini doğrudan PySpark DataFrame'lerine uygulamalarına olanak tanır. Apache Spark, Python'da tanımlanan rastgele kullanıcı işlevleri için benzer Ok iyileştirmeleri kullanan pandas UDF'lerini de destekler.

Pandas, Azure Databricks'te verileri nerede depolar?

Verileri Azure Databricks'te birçok farklı konumda depolamak için pandas'ı kullanabilirsiniz. Bazı konumlardan veri depolayıp yükleyebilmek, çalışma alanı yöneticileri tarafından ayarlanan yapılandırmalara bağlıdır.

Not: (Dikkat)

Databricks, üretim verilerinin bulut nesne depolamada depolanmasını önerir. Bkz. Azure Data Lake Storage'a Bağlan ve Blob Saklama Hizmeti.

Unity Kataloğu'nun etkin olduğu bir çalışma alanındaysanız dış konumlarla bulut depolamaya erişebilirsiniz. Bkz. Dış konumlara genel bakış.

Hızlı keşif ve hassas bilgi olmadan veri için, aşağıdaki örneklerde olduğu gibi Unity Kataloğu hacimleri veya göreceli yollar kullanarak veri kaydedebilirsiniz.

import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("/Volumes/my_catalog/my_schema/my_volume/volume_test.csv")
df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/tmp/dbfs_test.csv") # DBFS is deprecated.

Birime yazılan dosyaları sihirli %fs komutunu kullanarak görüntüleyebilirsiniz:

%fs ls /Volumes/my_catalog/my_schema/my_volume

Not: (Dikkat)

Hâlâ DBFS’yi destekleyen bir işlem kaynağı kullanıyorsanız, pandas’ın /dbfs/... gibi POSIX tarzı yollar kullandığını ve dbfs:/... yollarını doğrudan okuyamadığını unutmayın. DBFS FUSE'ü destekleyen bir işlem kümesinde pandas ile bir DBFS dosyasını okumak için dbfs:/ şemasını /dbfs/ ile değiştirin.

Göreli bir yola kaydettiğinizde, dosyanızın konumu kodunuzu nerede yürüttüğünüze bağlıdır. Databricks not defteri kullanıyorsanız, veri dosyanız kümenizin sürücüsüne bağlı birim depolama alanına kaydedilir. Küme sonlandırıldığında bu konumda depolanan veriler kalıcı olarak silinir. İsteğe bağlı dosya desteği etkinleştirilmiş Databricks Git klasörleri kullanıyorsanız verileriniz geçerli projenizin köküne kaydedilir. Her iki durumda da, aşağıdaki örnekte olduğu gibi geçerli kök dizininize göre basit bash işlemlerine izin veren magic komutu kullanılarak %sh yazılan dosyaları keşfedebilirsiniz:

%sh ls

Azure Databricks'in çeşitli dosyaları depolama şekli hakkında daha fazla bilgi için bkz . Azure Databricks'te dosyalarla çalışma.

Azure Databricks'te pandas ile verileri nasıl yüklersiniz?

Azure Databricks, araştırma için çalışma alanına veri yüklemeyi kolaylaştırmak için bir dizi seçenek sunar. Pandas ile veri yüklemek için tercih edilen yöntem, verilerinizi çalışma alanına nasıl yüklediğinize bağlı olarak değişir.

Yerel makinenizde not defterleriyle birlikte depolanan küçük veri dosyalarınız varsa, verilerinizi ve kodunuzu Git klasörleriyle birlikte karşıya yükleyebilirsiniz. Daha sonra veri dosyalarını yüklemek için göreli yolları kullanabilirsiniz.

Azure Databricks, veri yükleme için kapsamlı kullanıcı arabirimi tabanlı seçenekler sağlar. Bu seçeneklerin çoğu verilerinizi Delta tabloları olarak depolar. Delta tablosunu Spark DataFrame'e okuyabilir ve bunu pandas DataFrame'e dönüştürebilirsiniz.

Eğer Unity Kataloğu hacimleri veya göreceli yollar kullanan kayıtlı veri dosyalarınız varsa, aynı konumdan bu veri dosyalarını yeniden yükleyebilirsiniz. Aşağıdaki kod bir örnek sağlar:

import pandas as pd

df = pd.read_csv("/Volumes/my_catalog/my_schema/my_volume/volume_test.csv")
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/tmp/dbfs_test.csv") # DBFS is deprecated.

Pandas kullanarak ve tam nitelikli URL ile verileri doğrudan Azure Data Lake Storage yükleyebilirsiniz. Bulut verilerine erişmek için bulut kimlik bilgilerini sağlamanız gerekir. Python paketleri fsspec ve adlfs de yüklü olmalıdır.

df = pd.read_csv(
  f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
  storage_options={
    "sas_token": sas_token_value
  }
)