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:
- Azure Data Lake Storage1. Nesil hesabındaki verileri Azure Data Lake Storage 2. Nesil hesabına kopyalamak için bir Azure Data Factory işlem hattı yazın.
- Azure Data Lake Storage 1. Nesil hesabındaki verileri okuyan ve Azure Data Lake Storage 2. Nesil hesabına yazan bir Spark işi yazın. Kullanım örneğine bağlı olarak, özgün dosya biçimini korumanız gerekmiyorsa parquet gibi farklı bir biçimde yazmak isteyebilirsiniz.
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
- U-SQL geliştiricileri için Spark kodu kavramlarını anlama
- Büyük veri analizi çözümlerinizi Azure Data Lake Storage 1. Nesil'den Azure Data Lake Storage 2. Nesil yükseltme
- Apache Spark için .NET
- Azure Data Factory'de Spark etkinliğini kullanarak verileri dönüştürme
- Azure Data Factory'de Hadoop Hive etkinliğini kullanarak verileri dönüştürme
- Azure HDInsight’ta Apache Spark nedir?