U-SQL ile Spark veri biçimleri arasındaki farkları anlama

Önemli

Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuru ile daha fazla bilgi edinin.

Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.

Azure Databricks veya Azure HDInsight Spark kullanmak istiyorsanız, verilerinizi Azure Data Lake Storage 1. Nesil'den Azure Data Lake Storage 2. Nesil geçirmenizi öneririz.

Dosyalarınızı taşımaya ek olarak, U-SQL tablolarında depolanan verilerinizin Spark tarafından erişilebilir olmasını da istersiniz.

Azure Data Lake Storage. Nesil dosyalarında depolanan verileri taşıma

Dosyalarda depolanan veriler çeşitli yollarla taşınabilir:

Büyük veri analizi çözümlerinizi Azure Data Lake Storage 1. Nesil'den Azure Data Lake Storage 2. Nesil yükseltme makalesini gözden geçirmenizi öneririz

U-SQL tablolarında depolanan verileri taşıma

U-SQL tabloları Spark tarafından anlaşılmaz. U-SQL tablolarında depolanan verileriniz varsa, tablo verilerini ayıklayan ve Spark'ın anladığı biçimde kaydeden bir U-SQL işi çalıştırırsınız. En uygun biçim, Hive meta veri deposunun klasör düzenini izleyerek bir parquet dosyaları kümesi oluşturmaktır.

Çıkış, yerleşik Parquet çıkışlayıcısı ile U-SQL'de ve bölüm klasörlerini oluşturmak için dosya kümeleriyle dinamik çıkış bölümleme kullanılarak elde edilebilir. Her zamankinden daha fazla dosya işleyin ve Parquet'i kullanmak , bu tür Spark kullanılabilir verilerinin nasıl oluşturulacağını gösteren bir örnek sağlar.

Bu dönüştürmeden sonra, verileri Azure Data Lake Storage 1. Nesil dosyalarında depolanan verileri taşıma bölümünde açıklandığı gibi kopyalarsınız.

Uyarılar

  • Veri semantiği Dosyaları kopyalarken kopyalama bayt düzeyinde gerçekleşir. Bu nedenle aynı veriler Azure Data Lake Storage 2. Nesil hesabında görünmelidir. Ancak Spark'ın bazı karakterleri farklı yorumlayabileceğini unutmayın. Örneğin, CSV dosyasındaki bir satır sınırlayıcısı için farklı bir varsayılan değer kullanabilir. Ayrıca, yazılan verileri (tablolardan) kopyaladığınızda Parquet ve Spark, yazılan değerlerden bazıları (örneğin, kayan değer) için farklı duyarlık ve ölçeklere sahip olabilir ve null değerleri farklı şekilde değerlendirebilir. Örneğin, U-SQL null değerler için C# semantiğine sahipken Spark'ın null değerler için üç değerli bir mantığı vardır.

  • Veri düzenleme (bölümleme) U-SQL tabloları iki düzey bölümleme sağlar. Dış düzey (PARTITIONED BY) değere göredir ve çoğunlukla klasör hiyerarşilerini kullanarak Hive/Spark bölümleme düzenine eşlenir. Null değerlerin doğru klasöre eşlendiğinden emin olmanız gerekir. U-SQL'deki iç düzey (DISTRIBUTED BY) dört dağıtım şeması sunar: hepsini bir kez deneme, aralık, karma ve doğrudan karma. Hive/Spark tabloları, U-SQL'den farklı bir karma işlevi kullanarak yalnızca değer bölümlemini veya karma bölümleyi destekler. U-SQL tablo verilerinizin çıktısını aldığınızda, büyük olasılıkla yalnızca Spark için değer bölümlemesiyle eşlenebilirsiniz ve son Spark sorgularınıza bağlı olarak veri düzeninizi daha fazla ayarlamanız gerekebilir.

Sonraki adımlar