Aracılığıyla paylaş


Azure Synapse Analytics'te Apache Spark Danışmanı (Önizleme)

Apache Spark danışmanı, Spark tarafından çalıştırılan komutları ve kodu analiz eder ve Not Defteri çalıştırmaları için gerçek zamanlı öneriler görüntüler. Spark danışmanı, kullanıcıların yaygın hatalardan kaçınmasına, kod iyileştirme önerileri sunmasına, hata analizi gerçekleştirmesine ve hataların kök nedenini bulmasına yardımcı olan yerleşik desenlere sahiptir.

Yerleşik öneriler

'randomSplit' kullanılırken tutarsız sonuçlar döndürebilir

'randomSplit' yönteminin sonuçlarıyla çalışırken tutarsız veya yanlış sonuçlar döndürülebilir. 'randomSplit' yöntemini kullanmadan önce Apache Spark (RDD) önbelleğe alma özelliğini kullanın.

randomSplit() yöntemi, veri çerçevenizde her örnek yeniden oluşturma, bölümleme ve bölümler içinde veri çerçevenizi sıralama ile birden çok kez sample() gerçekleştirmeye eşdeğerdir. Bölümler arasında veri dağıtımı ve sıralama düzeni hem randomSplit() hem de sample() için önemlidir. Veri yeniden işlemede değişiklik olursa, bölmeler arasında yinelenenler veya eksik değerler olabilir ve aynı çekirdek kullanılarak aynı örnek farklı sonuçlara neden olabilir.

Bu tutarsızlıklar her çalıştırmada gerçekleşmeyebilir, ancak bunları tamamen ortadan kaldırmak, veri çerçevenizi önbelleğe almak, bir sütunda yeniden bölümlenmek veya groupBy gibi toplama işlevlerini uygulamak için olabilir.

Tablo/görünüm adı zaten kullanımda

Oluşturulan tabloyla aynı ada sahip bir görünüm zaten var veya oluşturulan görünümle aynı ada sahip bir tablo zaten var. Bu ad sorgularda veya uygulamalarda kullanıldığında, ilk olarak hangisinin oluşturulduğu fark etmez, yalnızca görünüm döndürülür. Çakışmaları önlemek için tabloyu veya görünümü yeniden adlandırın.

İpucu tanınamıyor

Seçili sorgu tanınmayan bir ipucu içeriyor. İpucunun doğru yazıldığını doğrulayın.

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

Belirtilen ilişki adları bulunamıyor

İpucunda belirtilen ilişki bulunamıyor. İlişkinin doğru yazıldığını ve ipucu kapsamında erişilebilir olduğunu doğrulayın.

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Sorgudaki ipucu, başka bir ipucunun uygulanmasını engeller

Seçili sorgu, başka bir ipucunun uygulanmasını engelleyen bir ipucu içeriyor.

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Yuvarlama hatası yaymayı azaltmak için 'spark.advise.divisionExprConvertRule.enable' özelliğini etkinleştirin

Bu sorgu, Double türünde ifadeyi içerir. Bölme ifadelerini azaltmaya ve yuvarlama hatası yaymayı azaltmaya yardımcı olabilecek 'spark.advise.divisionExprConvertRule.enable' yapılandırmasını etkinleştirmenizi öneririz.

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Sorgu performansını geliştirmek için 'spark.advise.nonEqJoinConvertRule.enable' özelliğini etkinleştirin

Bu sorgu, sorgu içindeki "Veya" koşulu nedeniyle zaman alan birleştirme içeriyor. Bu sorguyu hızlandırmak için "Or" koşulu tarafından tetiklenen birleştirmeyi SMJ veya BHJ'ye dönüştürmeye yardımcı olabilecek 'spark.advise.nonEqJoinConvertRule.enable' yapılandırmasını etkinleştirmenizi öneririz.

Delta tablosunu küçük dosya sıkıştırmasıyla iyileştirme

Bu sorgu, çok sayıda küçük dosya içeren bir delta tablosundadır. Sorguların performansını geliştirmek için delta tablosunda OPTIMIZE komutunu çalıştırın. Bu makalenin içinde daha fazla ayrıntı bulunabilir.

Delta tablosunu ZOrder ile iyileştirme

Bu sorgu bir Delta tablosundadır ve yüksek oranda seçmeli bir filtre içerir. Sorguların performansını geliştirmek için delta tablosunda ZORDER BY'ı OPTIMIZE ET komutunu çalıştırın. Bu makalenin içinde daha fazla ayrıntı bulunabilir.

Kullanıcı Deneyimi

Apache Spark danışmanı, not defteri hücre çıkışında gerçek zamanlı olarak bilgiler, uyarı ve hatalar da dahil olmak üzere önerileri görüntüler.

  • Bilgi

    Öneri bilgilerini gösteren ekran görüntüsü.

  • Uyarı

    Öneri uyarısı için gösterilen ekran görüntüsü.

  • Hatalar

    Öneri hatası için gösteren ekran görüntüsü.

Sonraki adımlar

Apache Spark uygulamalarını izleme hakkında daha fazla bilgi için Synapse Studio kullanarak Apache Spark uygulamalarını izleme makalesine bakın.

Not defteri oluşturma hakkında daha fazla bilgi için bkz . Synapse not defterlerini kullanma