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:
- Azure Data Lake Storage 1. hesabındaki verileri Azure Data Lake Storage 2. hesabına kopyalamak için bir Azure Data Factory işlem hattı yazın.
- Azure Data Lake Storage 1. hesabından verileri okuyan bir Spark işi yazın ve Azure Data Lake Storage 2. hesabına yazar. Özgün dosya biçimini korumanız gerekmiyorsa, kullanım ihtimaline bağlı olarak, Parquet gibi farklı bir biçimde yazmak isteyebilirsiniz.
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
- U-SQL geliştiricileri için Spark kod kavramlarını anlama
- Büyük veri analizi Çözümlerinizi Azure Data Lake Storage 1. Azure Data Lake Storage 2. ' dan yükseltin
- Apache Spark için .NET
- Azure Data Factory Spark etkinliğini kullanarak verileri dönüştürme
- Azure Data Factory Hadoop Hive etkinliğini kullanarak verileri dönüştürme
- Azure HDInsight’ta Apache Spark nedir?