BaşlayınÜcretsiz Başlayın

UDF oluşturmayı pratik etme

Bazen verilerin, yerleşik fonksiyonların desteklemediği bir dönüşüme ihtiyaç duyar. İşte bu noktada özel kullanıcı tanımlı fonksiyonlar ("UDF") devreye girer.

SQL fonksiyonu udf kullanılabilir.

DataFrame[doc: array<string>, in: array<string>, out: array<string>] tipinde bir df2 veri çerçevesi mevcut. doc sütunu basit belirteçler içeriyor.

Aşağıdaki kod, doc içinde '1' geçen df2'nin ilk 20 satırını gösterir:

df2.where(array_contains('doc','1')).show()

İki hedefin var:

  1. Dönüştürülmüş verinin boş olmayan vektörlerden oluşmasını sağla.
  2. Bir veri çerçevesinde, her bir dizinin tek bir öğe içerdiği, string diziler tutan bir sütun var. Bu sütunu bir stringe dönüştürmek istiyorsun.

Bu egzersiz

Python ile Spark SQL'e Giriş

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • numNonzeros() kullanarak, değer yalnızca ve ancak boş olmayan bir vektör ise true döndüren bir udf oluştur.
  • Dizinin ilk öğesini döndüren ve onun string gösterimini veren bir udf oluştur.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Returns true if the value is a nonempty vector
nonempty_udf = udf(lambda x:  
    True if (x and hasattr(x, "toArray") and x.____())
    else False, ____())

# Returns first element of the array as string
s_udf = udf(lambda x: ____(x[0]) if (x and type(x) is list and len(x) > 0)
    else '', ____())
Kodu Düzenle ve Çalıştır