U-SQL ve Spark veri biçimleri arasındaki farkları anlayın

Azure Databricks veya Azure HDInsight Sparkkullanmak istiyorsanız, Azure Data Lake Storage 1. verilerinizi Azure Data Lake Storage 2.'e geçirmeniz önerilir.

Dosyalarınızı taşımaya ek olarak, c-SQL tablolarında depolanacak ve Spark tarafından erişilebilen verilerinizi de yapmak isteyeceksiniz.

Azure Data Lake Storage 1. 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. ' den Azure Data Lake Storage 2. sürümüne yükseltme makalesini incelemenizi öneririz

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

U-SQL tabloları Spark tarafından anlaşılamıyor. U-SQL tablolarında depolanan verileriniz varsa, tablo verilerini çıkaran ve Spark 'ın anlayacağı bir biçimde kaydeden bir U-SQL işini çalıştıracaksınız. En uygun biçim, Hive meta veri deposu klasör düzeninden sonra bir dizi Parquet dosyası oluşturmaktır.

Çıktı, yerleşik Parquet outputter ile U-SQL ' i n içinde 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 kullanımı , bu tür Spark tüketilebilir verilerin nasıl oluşturulacağı hakkında bir örnek sağlar.

Bu dönüşümden sonra, Azure Data Lake Storage 1. dosyalarında depolanan verileri taşımabölümünde özetlenen verileri kopyalayın.

Uyarılar

  • Veri semantiği dosya kopyalanırken kopya bayt düzeyinde gerçekleşir. Bu nedenle Azure Data Lake Storage 2. hesapta aynı verilerin görünmesi gerekir. Ancak Spark bazı karakterleri farklı yorumlayabilir. Örneğin, bir CSV dosyasındaki satır sınırlayıcısı için farklı bir varsayılan kullanabilir. Ayrıca, yazılı verileri (tablolardan) kopyalıyorsanız, Parquet ve Spark, yazılan bazı değerler (örneğin, bir float) için farklı duyarlığa ve ölçeğe sahip olabilir ve null değerleri farklı şekilde işleyebilir. Örneğin, U-SQL null değerleri için C# semantiğini, Spark ise null değerler için üç değerli mantığa sahiptir.

  • Veri organizasyonu (bölümlendirme) U-SQL tabloları iki düzey bölümlendirme sağlar. Dış düzey ( PARTITIONED BY ) değere göre ve genellikle klasör hiyerarşileri kullanarak Hive/Spark bölümlendirme düzenine eşlenir. Null değerlerinin doğru klasöre eşlendiğinden emin olmanız gerekir. DISTRIBUTED BYU-SQL içindeki iç düzey () 4 dağıtım şeması sunar: hepsini bir kez deneme, Aralık, karma ve doğrudan karma. Hive/Spark tabloları yalnızca U-SQL ' den farklı bir karma işlevi kullanarak değer bölümleme veya karma bölümlendirme desteği destekler. U-SQL tablo verilerinizin çıktısını aldığınızda, muhtemelen yalnızca Spark için değer bölümlemesini eşleyebilir ve son Spark sorgularınıza bağlı olarak veri düzeninizi daha fazla ayarlamaya gerek olabilir.

Sonraki adımlar